[TEST] Add test that filtered alias with date math isn't cached by the request cache
This commit is contained in:
parent
389d365697
commit
ce1a9a2b06
|
@ -19,9 +19,11 @@
|
|||
|
||||
package org.elasticsearch.indices;
|
||||
|
||||
import org.elasticsearch.action.admin.indices.alias.Alias;
|
||||
import org.elasticsearch.action.search.SearchResponse;
|
||||
import org.elasticsearch.action.search.SearchType;
|
||||
import org.elasticsearch.cluster.metadata.IndexMetaData;
|
||||
import org.elasticsearch.index.query.QueryBuilder;
|
||||
import org.elasticsearch.index.query.QueryBuilders;
|
||||
import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval;
|
||||
import org.elasticsearch.search.aggregations.bucket.histogram.Histogram;
|
||||
|
@ -30,6 +32,7 @@ import org.elasticsearch.test.ESIntegTestCase;
|
|||
import org.joda.time.DateTime;
|
||||
import org.joda.time.DateTimeZone;
|
||||
import org.joda.time.chrono.ISOChronology;
|
||||
import org.joda.time.format.DateTimeFormat;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -441,4 +444,56 @@ public class IndicesRequestCacheIT extends ESIntegTestCase {
|
|||
equalTo(5L));
|
||||
}
|
||||
|
||||
public void testCacheWithFilteredAlias() {
|
||||
assertAcked(client().admin().indices().prepareCreate("index").addMapping("type", "created_at", "type=date")
|
||||
.setSettings(IndicesRequestCache.INDEX_CACHE_REQUEST_ENABLED_SETTING.getKey(), true, IndexMetaData.SETTING_NUMBER_OF_SHARDS,
|
||||
1, IndexMetaData.SETTING_NUMBER_OF_REPLICAS, 0)
|
||||
.addAlias(new Alias("last_week").filter(QueryBuilders.rangeQuery("created_at").gte("now-7d/d")))
|
||||
.get());
|
||||
DateTime now = new DateTime(DateTimeZone.UTC);
|
||||
client().prepareIndex("index", "type", "1").setRouting("1").setSource("created_at",
|
||||
DateTimeFormat.forPattern("YYYY-MM-dd").print(now)).get();
|
||||
refresh();
|
||||
|
||||
assertThat(client().admin().indices().prepareStats("index").setRequestCache(true).get().getTotal().getRequestCache().getHitCount(),
|
||||
equalTo(0L));
|
||||
assertThat(client().admin().indices().prepareStats("index").setRequestCache(true).get().getTotal().getRequestCache().getMissCount(),
|
||||
equalTo(0L));
|
||||
|
||||
SearchResponse r1 = client().prepareSearch("index").setSearchType(SearchType.QUERY_THEN_FETCH).setSize(0)
|
||||
.setQuery(QueryBuilders.rangeQuery("created_at").gte("now-7d/d")).get();
|
||||
assertSearchResponse(r1);
|
||||
assertThat(r1.getHits().getTotalHits(), equalTo(1L));
|
||||
assertThat(client().admin().indices().prepareStats("index").setRequestCache(true).get().getTotal().getRequestCache().getHitCount(),
|
||||
equalTo(0L));
|
||||
assertThat(client().admin().indices().prepareStats("index").setRequestCache(true).get().getTotal().getRequestCache().getMissCount(),
|
||||
equalTo(1L));
|
||||
|
||||
r1 = client().prepareSearch("index").setSearchType(SearchType.QUERY_THEN_FETCH).setSize(0)
|
||||
.setQuery(QueryBuilders.rangeQuery("created_at").gte("now-7d/d")).get();
|
||||
assertSearchResponse(r1);
|
||||
assertThat(r1.getHits().getTotalHits(), equalTo(1L));
|
||||
assertThat(client().admin().indices().prepareStats("index").setRequestCache(true).get().getTotal().getRequestCache().getHitCount(),
|
||||
equalTo(1L));
|
||||
assertThat(client().admin().indices().prepareStats("index").setRequestCache(true).get().getTotal().getRequestCache().getMissCount(),
|
||||
equalTo(1L));
|
||||
|
||||
// filtered alias is handled differently and must not be cached at this point
|
||||
r1 = client().prepareSearch("last_week").setSearchType(SearchType.QUERY_THEN_FETCH).setSize(0).get();
|
||||
assertSearchResponse(r1);
|
||||
assertThat(r1.getHits().getTotalHits(), equalTo(1L));
|
||||
assertThat(client().admin().indices().prepareStats("index").setRequestCache(true).get().getTotal().getRequestCache().getHitCount(),
|
||||
equalTo(1L));
|
||||
assertThat(client().admin().indices().prepareStats("index").setRequestCache(true).get().getTotal().getRequestCache().getMissCount(),
|
||||
equalTo(1L));
|
||||
|
||||
r1 = client().prepareSearch("last_week").setSearchType(SearchType.QUERY_THEN_FETCH).setSize(0).get();
|
||||
assertSearchResponse(r1);
|
||||
assertThat(r1.getHits().getTotalHits(), equalTo(1L));
|
||||
assertThat(client().admin().indices().prepareStats("index").setRequestCache(true).get().getTotal().getRequestCache().getHitCount(),
|
||||
equalTo(1L));
|
||||
assertThat(client().admin().indices().prepareStats("index").setRequestCache(true).get().getTotal().getRequestCache().getMissCount(),
|
||||
equalTo(1L));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue