summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java
diff options
context:
space:
mode:
authorColin Goodheart-Smithe <colings86@users.noreply.github.com>2016-10-04 19:31:51 +0100
committerColin Goodheart-Smithe <colings86@users.noreply.github.com>2016-10-04 19:31:51 +0100
commitc3622271bf1f4196030a4697fef08c609bdfa95b (patch)
treeb1a50248705e8e4b135eb9cef428e88a4dfea46b /core/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java
parent94b7873b49a83ac769b6b83ddd715b88e0697dbf (diff)
Tests to make sure markAsNotCacheable() works when scripts are used
Diffstat (limited to 'core/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java')
-rw-r--r--core/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java43
1 files changed, 42 insertions, 1 deletions
diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java b/core/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java
index cff1fa746d..35e46b5078 100644
--- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java
+++ b/core/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java
@@ -26,6 +26,7 @@ import org.elasticsearch.index.fielddata.ScriptDocValues;
import org.elasticsearch.plugins.Plugin;
import org.elasticsearch.script.MockScriptPlugin;
import org.elasticsearch.script.Script;
+import org.elasticsearch.script.ScriptService.ScriptType;
import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode;
import org.elasticsearch.search.aggregations.bucket.global.Global;
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
@@ -41,10 +42,10 @@ import java.util.function.Function;
import static java.util.Collections.emptyMap;
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
-import static org.elasticsearch.script.ScriptService.ScriptType;
import static org.elasticsearch.search.aggregations.AggregationBuilders.cardinality;
import static org.elasticsearch.search.aggregations.AggregationBuilders.global;
import static org.elasticsearch.search.aggregations.AggregationBuilders.terms;
+import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.greaterThan;
@@ -445,4 +446,44 @@ public class CardinalityIT extends ESIntegTestCase {
assertCount(count, 2);
}
}
+
+ /**
+ * Make sure that a request using a script does not get cached and a request
+ * not using a script does get cached.
+ */
+ public void testDontCacheScripts() throws Exception {
+ assertAcked(prepareCreate("cache_test_idx").addMapping("type", "d", "type=long")
+ .setSettings(Settings.builder().put("requests.cache.enable", true).put("number_of_shards", 1).put("number_of_replicas", 1))
+ .get());
+ indexRandom(true, client().prepareIndex("cache_test_idx", "type", "1").setSource("s", 1),
+ client().prepareIndex("cache_test_idx", "type", "2").setSource("s", 2));
+
+ // Make sure we are starting with a clear cache
+ assertThat(client().admin().indices().prepareStats("cache_test_idx").setRequestCache(true).get().getTotal().getRequestCache()
+ .getHitCount(), equalTo(0L));
+ assertThat(client().admin().indices().prepareStats("cache_test_idx").setRequestCache(true).get().getTotal().getRequestCache()
+ .getMissCount(), equalTo(0L));
+
+ // Test that a request using a script does not get cached
+ SearchResponse r = client().prepareSearch("cache_test_idx").setSize(0)
+ .addAggregation(
+ cardinality("foo").field("d").script(new Script("_value", ScriptType.INLINE, CustomScriptPlugin.NAME, emptyMap())))
+ .get();
+ assertSearchResponse(r);
+
+ assertThat(client().admin().indices().prepareStats("cache_test_idx").setRequestCache(true).get().getTotal().getRequestCache()
+ .getHitCount(), equalTo(0L));
+ assertThat(client().admin().indices().prepareStats("cache_test_idx").setRequestCache(true).get().getTotal().getRequestCache()
+ .getMissCount(), equalTo(0L));
+
+ // To make sure that the cache is working test that a request not using
+ // a script is cached
+ r = client().prepareSearch("cache_test_idx").setSize(0).addAggregation(cardinality("foo").field("d")).get();
+ assertSearchResponse(r);
+
+ assertThat(client().admin().indices().prepareStats("cache_test_idx").setRequestCache(true).get().getTotal().getRequestCache()
+ .getHitCount(), equalTo(0L));
+ assertThat(client().admin().indices().prepareStats("cache_test_idx").setRequestCache(true).get().getTotal().getRequestCache()
+ .getMissCount(), equalTo(1L));
+ }
}