summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregatorTests.java
diff options
context:
space:
mode:
authormarkharwood <markharwood@gmail.com>2017-07-03 09:52:23 +0100
committerGitHub <noreply@github.com>2017-07-03 09:52:23 +0100
commita9ea742a85f225cdc93cd97a21303445ab189f1f (patch)
treedfc57d63d7a5c3f560be240710dce70616751cc0 /core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregatorTests.java
parent99fef2490a5fc834f3897aaaf0c7273217708d77 (diff)
Tests fix - Significant terms/text aggs (#25499)
The significance aggs return Lucene index-level statistics that when merged are assumed to be from different shards. The Aggregator unit tests assume segments can be treated as shards and thus break the significance stats and introduce double-counting of background doc frequencies. This change addresses this problem by ensuring test indexes have only one shard. Closes #25429
Diffstat (limited to 'core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregatorTests.java')
-rw-r--r--core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregatorTests.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregatorTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregatorTests.java
index 20b2894b73..38ed7edf06 100644
--- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregatorTests.java
+++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregatorTests.java
@@ -95,7 +95,6 @@ public class SignificantTermsAggregatorTests extends AggregatorTestCase {
/**
* Uses the significant terms aggregation to find the keywords in text fields
*/
- @AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/25429")
public void testSignificance() throws IOException {
TextFieldType textFieldType = new TextFieldType();
textFieldType.setName("text");
@@ -103,6 +102,9 @@ public class SignificantTermsAggregatorTests extends AggregatorTestCase {
textFieldType.setIndexAnalyzer(new NamedAnalyzer("my_analyzer", AnalyzerScope.GLOBAL, new StandardAnalyzer()));
IndexWriterConfig indexWriterConfig = newIndexWriterConfig();
+ indexWriterConfig.setMaxBufferedDocs(100);
+ indexWriterConfig.setRAMBufferSizeMB(100); // flush on open to have a single segment
+
try (Directory dir = newDirectory(); IndexWriter w = new IndexWriter(dir, indexWriterConfig)) {
addMixedTextDocs(textFieldType, w);
@@ -117,6 +119,7 @@ public class SignificantTermsAggregatorTests extends AggregatorTestCase {
sigNumAgg.executionHint(randomExecutionHint());
try (IndexReader reader = DirectoryReader.open(w)) {
+ assertEquals("test expects a single segment", 1, reader.leaves().size());
IndexSearcher searcher = new IndexSearcher(reader);
// Search "odd"
@@ -183,6 +186,8 @@ public class SignificantTermsAggregatorTests extends AggregatorTestCase {
textFieldType.setIndexAnalyzer(new NamedAnalyzer("my_analyzer", AnalyzerScope.GLOBAL, new StandardAnalyzer()));
IndexWriterConfig indexWriterConfig = newIndexWriterConfig();
+ indexWriterConfig.setMaxBufferedDocs(100);
+ indexWriterConfig.setRAMBufferSizeMB(100); // flush on open to have a single segment
final long ODD_VALUE = 3;
final long EVEN_VALUE = 6;
final long COMMON_VALUE = 2;
@@ -206,6 +211,7 @@ public class SignificantTermsAggregatorTests extends AggregatorTestCase {
sigNumAgg.executionHint(randomExecutionHint());
try (IndexReader reader = DirectoryReader.open(w)) {
+ assertEquals("test expects a single segment", 1, reader.leaves().size());
IndexSearcher searcher = new IndexSearcher(reader);
// Search "odd"
@@ -237,6 +243,8 @@ public class SignificantTermsAggregatorTests extends AggregatorTestCase {
textFieldType.setIndexAnalyzer(new NamedAnalyzer("my_analyzer", AnalyzerScope.GLOBAL, new StandardAnalyzer()));
IndexWriterConfig indexWriterConfig = newIndexWriterConfig();
+ indexWriterConfig.setMaxBufferedDocs(100);
+ indexWriterConfig.setRAMBufferSizeMB(100); // flush on open to have a single segment
try (Directory dir = newDirectory(); IndexWriter w = new IndexWriter(dir, indexWriterConfig)) {
addMixedTextDocs(textFieldType, w);
@@ -245,6 +253,7 @@ public class SignificantTermsAggregatorTests extends AggregatorTestCase {
sigAgg.executionHint(randomExecutionHint());
try (IndexReader reader = DirectoryReader.open(w)) {
+ assertEquals("test expects a single segment", 1, reader.leaves().size());
IndexSearcher searcher = new IndexSearcher(reader);
// Search "odd"