summaryrefslogtreecommitdiff
path: root/core/src/test/java/org
diff options
context:
space:
mode:
authorSimon Willnauer <simon.willnauer@elasticsearch.com>2016-10-11 15:30:38 +0200
committerGitHub <noreply@github.com>2016-10-11 15:30:38 +0200
commitc98e3f60f78fb47ae7482d96952f2dbabd1d6d49 (patch)
treee8ed1c07eeee9d3e48309da4f71b38ba2cfaa454 /core/src/test/java/org
parent3528a514e2c4135dd216de92bd34c38d8a180173 (diff)
Ensure source filtering automatons are only compiled once (#20857)
This change adds a overloaded `XContentMapValues#filter` method that returns a function enclosing the compiled automatons that can be reused across filter calls. This for instance prevents compiling automatons over and over again when hits are filtered or in the SourceFieldMapper for each document. Closes #20839
Diffstat (limited to 'core/src/test/java/org')
-rw-r--r--core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java4
-rw-r--r--core/src/test/java/org/elasticsearch/mget/SimpleMgetIT.java12
-rw-r--r--core/src/test/java/org/elasticsearch/search/AbstractSearchTestCase.java9
-rw-r--r--core/src/test/java/org/elasticsearch/search/aggregations/metrics/TopHitsTests.java41
-rw-r--r--core/src/test/java/org/elasticsearch/search/fetch/subphase/InnerHitsIT.java5
5 files changed, 39 insertions, 32 deletions
diff --git a/core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java
index 5f8c847e41..19252a6b80 100644
--- a/core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java
+++ b/core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java
@@ -236,7 +236,7 @@ public class InnerHitBuilderTests extends ESTestCase {
if (randomBoolean()) {
randomFetchSourceContext = new FetchSourceContext(randomBoolean());
} else {
- randomFetchSourceContext = new FetchSourceContext(
+ randomFetchSourceContext = new FetchSourceContext(true,
generateRandomStringArray(12, 16, false),
generateRandomStringArray(12, 16, false)
);
@@ -322,7 +322,7 @@ public class InnerHitBuilderTests extends ESTestCase {
if (randomBoolean()) {
randomFetchSourceContext = new FetchSourceContext(randomBoolean());
} else {
- randomFetchSourceContext = new FetchSourceContext(
+ randomFetchSourceContext = new FetchSourceContext(true,
generateRandomStringArray(12, 16, false),
generateRandomStringArray(12, 16, false)
);
diff --git a/core/src/test/java/org/elasticsearch/mget/SimpleMgetIT.java b/core/src/test/java/org/elasticsearch/mget/SimpleMgetIT.java
index e022bd7521..c8e14867d3 100644
--- a/core/src/test/java/org/elasticsearch/mget/SimpleMgetIT.java
+++ b/core/src/test/java/org/elasticsearch/mget/SimpleMgetIT.java
@@ -60,7 +60,8 @@ public class SimpleMgetIT extends ESIntegTestCase {
assertThat(mgetResponse.getResponses()[1].getIndex(), is("nonExistingIndex"));
assertThat(mgetResponse.getResponses()[1].isFailed(), is(true));
assertThat(mgetResponse.getResponses()[1].getFailure().getMessage(), is("no such index"));
- assertThat(((ElasticsearchException) mgetResponse.getResponses()[1].getFailure().getFailure()).getIndex().getName(), is("nonExistingIndex"));
+ assertThat(((ElasticsearchException) mgetResponse.getResponses()[1].getFailure().getFailure()).getIndex().getName(),
+ is("nonExistingIndex"));
mgetResponse = client().prepareMultiGet()
@@ -70,7 +71,8 @@ public class SimpleMgetIT extends ESIntegTestCase {
assertThat(mgetResponse.getResponses()[0].getIndex(), is("nonExistingIndex"));
assertThat(mgetResponse.getResponses()[0].isFailed(), is(true));
assertThat(mgetResponse.getResponses()[0].getFailure().getMessage(), is("no such index"));
- assertThat(((ElasticsearchException) mgetResponse.getResponses()[0].getFailure().getFailure()).getIndex().getName(), is("nonExistingIndex"));
+ assertThat(((ElasticsearchException) mgetResponse.getResponses()[0].getFailure().getFailure()).getIndex().getName(),
+ is("nonExistingIndex"));
}
@@ -119,9 +121,11 @@ public class SimpleMgetIT extends ESIntegTestCase {
MultiGetRequestBuilder request = client().prepareMultiGet();
for (int i = 0; i < 100; i++) {
if (i % 2 == 0) {
- request.add(new MultiGetRequest.Item(indexOrAlias(), "type", Integer.toString(i)).fetchSourceContext(new FetchSourceContext("included", "*.hidden_field")));
+ request.add(new MultiGetRequest.Item(indexOrAlias(), "type", Integer.toString(i))
+ .fetchSourceContext(new FetchSourceContext(true, new String[] {"included"}, new String[] {"*.hidden_field"})));
} else {
- request.add(new MultiGetRequest.Item(indexOrAlias(), "type", Integer.toString(i)).fetchSourceContext(new FetchSourceContext(false)));
+ request.add(new MultiGetRequest.Item(indexOrAlias(), "type", Integer.toString(i))
+ .fetchSourceContext(new FetchSourceContext(false)));
}
}
diff --git a/core/src/test/java/org/elasticsearch/search/AbstractSearchTestCase.java b/core/src/test/java/org/elasticsearch/search/AbstractSearchTestCase.java
index 048416c25e..e98b469f95 100644
--- a/core/src/test/java/org/elasticsearch/search/AbstractSearchTestCase.java
+++ b/core/src/test/java/org/elasticsearch/search/AbstractSearchTestCase.java
@@ -153,19 +153,20 @@ public abstract class AbstractSearchTestCase extends ESTestCase {
fetchSourceContext = new FetchSourceContext(randomBoolean());
break;
case 1:
- fetchSourceContext = new FetchSourceContext(includes, excludes);
+ fetchSourceContext = new FetchSourceContext(true, includes, excludes);
break;
case 2:
- fetchSourceContext = new FetchSourceContext(randomAsciiOfLengthBetween(5, 20), randomAsciiOfLengthBetween(5, 20));
+ fetchSourceContext = new FetchSourceContext(true, new String[]{randomAsciiOfLengthBetween(5, 20)},
+ new String[]{randomAsciiOfLengthBetween(5, 20)});
break;
case 3:
fetchSourceContext = new FetchSourceContext(true, includes, excludes);
break;
case 4:
- fetchSourceContext = new FetchSourceContext(includes);
+ fetchSourceContext = new FetchSourceContext(true, includes, null);
break;
case 5:
- fetchSourceContext = new FetchSourceContext(randomAsciiOfLengthBetween(5, 20));
+ fetchSourceContext = new FetchSourceContext(true, new String[] {randomAsciiOfLengthBetween(5, 20)}, null);
break;
default:
throw new IllegalStateException();
diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/TopHitsTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/metrics/TopHitsTests.java
index 3f2b4c4462..98e2833903 100644
--- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/TopHitsTests.java
+++ b/core/src/test/java/org/elasticsearch/search/aggregations/metrics/TopHitsTests.java
@@ -107,26 +107,27 @@ public class TopHitsTests extends BaseAggregationTestCase<TopHitsAggregationBuil
excludes[i] = randomAsciiOfLengthBetween(5, 20);
}
switch (branch) {
- case 0:
- fetchSourceContext = new FetchSourceContext(randomBoolean());
- break;
- case 1:
- fetchSourceContext = new FetchSourceContext(includes, excludes);
- break;
- case 2:
- fetchSourceContext = new FetchSourceContext(randomAsciiOfLengthBetween(5, 20), randomAsciiOfLengthBetween(5, 20));
- break;
- case 3:
- fetchSourceContext = new FetchSourceContext(true, includes, excludes);
- break;
- case 4:
- fetchSourceContext = new FetchSourceContext(includes);
- break;
- case 5:
- fetchSourceContext = new FetchSourceContext(randomAsciiOfLengthBetween(5, 20));
- break;
- default:
- throw new IllegalStateException();
+ case 0:
+ fetchSourceContext = new FetchSourceContext(randomBoolean());
+ break;
+ case 1:
+ fetchSourceContext = new FetchSourceContext(true, includes, excludes);
+ break;
+ case 2:
+ fetchSourceContext = new FetchSourceContext(true, new String[]{randomAsciiOfLengthBetween(5, 20)},
+ new String[]{randomAsciiOfLengthBetween(5, 20)});
+ break;
+ case 3:
+ fetchSourceContext = new FetchSourceContext(true, includes, excludes);
+ break;
+ case 4:
+ fetchSourceContext = new FetchSourceContext(true, includes, null);
+ break;
+ case 5:
+ fetchSourceContext = new FetchSourceContext(true, new String[] {randomAsciiOfLengthBetween(5, 20)}, null);
+ break;
+ default:
+ throw new IllegalStateException();
}
factory.fetchSource(fetchSourceContext);
}
diff --git a/core/src/test/java/org/elasticsearch/search/fetch/subphase/InnerHitsIT.java b/core/src/test/java/org/elasticsearch/search/fetch/subphase/InnerHitsIT.java
index 1e43ffe532..1c9a915b2a 100644
--- a/core/src/test/java/org/elasticsearch/search/fetch/subphase/InnerHitsIT.java
+++ b/core/src/test/java/org/elasticsearch/search/fetch/subphase/InnerHitsIT.java
@@ -666,7 +666,7 @@ public class InnerHitsIT extends ESIntegTestCase {
.innerHit(new InnerHitBuilder())).get();
assertNoFailures(response);
assertHitCount(response, 1);
- SearchHit hit = response.getHits().getAt(0);
+ SearchHit hit = response.getHits().getAt(0);
assertThat(hit.id(), equalTo("1"));
SearchHits messages = hit.getInnerHits().get("comments.messages");
assertThat(messages.getTotalHits(), equalTo(1L));
@@ -982,7 +982,8 @@ public class InnerHitsIT extends ESIntegTestCase {
// other features (like in the query dsl or aggs) in order for consistency:
SearchResponse response = client().prepareSearch()
.setQuery(nestedQuery("comments", matchQuery("comments.message", "fox"), ScoreMode.None)
- .innerHit(new InnerHitBuilder().setFetchSourceContext(new FetchSourceContext("comments.message"))))
+ .innerHit(new InnerHitBuilder().setFetchSourceContext(new FetchSourceContext(true,
+ new String[]{"comments.message"}, null))))
.get();
assertNoFailures(response);
assertHitCount(response, 1);