Gehel has submitted this change and it was merged.

Change subject: Upgrade to elastic 2.1.0
......................................................................


Upgrade to elastic 2.1.0

Change-Id: I0f6dcbe427ee58b9573bf56b1201766e8f6c9b9b
---
M README.md
M pom.xml
M 
src/main/java/org/wikimedia/search/extra/regex/ExpressionToFilterTransformer.java
M 
src/main/java/org/wikimedia/search/extra/safer/DefaultNoopSafeifierActions.java
M 
src/main/java/org/wikimedia/search/extra/safer/DefaultQueryExplodingSafeifierActions.java
M src/main/java/org/wikimedia/search/extra/safer/phrase/PhraseQueryAdapter.java
M src/test/java/org/wikimedia/search/extra/AbstractPluginIntegrationTest.java
D 
src/test/java/org/wikimedia/search/extra/regex/ExceptionsAreSerializableTest.java
M src/test/java/org/wikimedia/search/extra/safer/SafeifierNoopQueriesTest.java
M 
src/test/java/org/wikimedia/search/extra/safer/SafeifierQueryExplodingTest.java
M src/test/java/org/wikimedia/search/extra/safer/SafeifierTest.java
M 
src/test/java/org/wikimedia/search/extra/superdetectnoop/SuperDetectNoopScriptTest.java
12 files changed, 90 insertions(+), 114 deletions(-)

Approvals:
  Gehel: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/README.md b/README.md
index efa8a59..297b327 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,8 @@
 
 | Extra Queries and Filters Plugin |  ElasticSearch  |
 |----------------------------------|-----------------|
-| 2.0.0, master branch             | 2.0.x           |
+| 2.1.0, master branch             | 2.1.x           |
+| 2.0.0, 2.0 branch                | 2.0.x           |
 | 1.7.0 -> 1.7.1, 1.7 branch       | 1.7.X           |
 | 1.6.0, 1.6 branch                | 1.6.X           |
 | 1.5.0, 1.5 branch                | 1.5.X           |
diff --git a/pom.xml b/pom.xml
index 395b3c4..2b3a613 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
 
   <groupId>org.wikimedia.search</groupId>
   <artifactId>extra</artifactId>
-  <version>2.0.0-SNAPSHOT</version>
+  <version>2.1.0-SNAPSHOT</version>
   <description>Extra queries and filters for Elasticsearch.</description>
 
   <licenses>
@@ -43,8 +43,8 @@
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <elasticsearch.version>2.0.0</elasticsearch.version>
-    <lucene.version>5.2.1</lucene.version>
+    <elasticsearch.version>2.1.0</elasticsearch.version>
+    <lucene.version>5.3.1</lucene.version>
   </properties>
 
   <build>
@@ -57,14 +57,6 @@
         </includes>
       </resource>
     </resources>
-    <testResources>
-      <testResource>
-        <directory>src/test/java</directory>
-      </testResource>
-      <testResource>
-        <directory>src/test/resources</directory>
-      </testResource>
-    </testResources>
     <plugins>
       <plugin>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
diff --git 
a/src/main/java/org/wikimedia/search/extra/regex/ExpressionToFilterTransformer.java
 
b/src/main/java/org/wikimedia/search/extra/regex/ExpressionToFilterTransformer.java
index f8fe229..1a7b631 100644
--- 
a/src/main/java/org/wikimedia/search/extra/regex/ExpressionToFilterTransformer.java
+++ 
b/src/main/java/org/wikimedia/search/extra/regex/ExpressionToFilterTransformer.java
@@ -42,11 +42,12 @@
 
     @Override
     public Query and(ImmutableSet<Query> js) {
-        BooleanQuery query = new BooleanQuery();
+        BooleanQuery.Builder builder = new BooleanQuery.Builder();
+
         for (Query j : js) {
-            query.add(j, Occur.MUST);
+            builder.add(j, Occur.MUST);
         }
-        return query;
+        return builder.build();
     }
 
     @Override
@@ -54,9 +55,9 @@
         // Array containing all terms if this is contains only term queries
         boolean allTermQueries = true;
         List<BytesRef> allTerms = null;
-        BooleanQuery query = new BooleanQuery();
+        BooleanQuery.Builder builder = new BooleanQuery.Builder();
         for (Query j : js) {
-            query.add(j, Occur.SHOULD);
+            builder.add(j, Occur.SHOULD);
             if (allTermQueries) {
                 allTermQueries = j instanceof TermQuery;
                 if (allTermQueries) {
@@ -68,7 +69,7 @@
             }
         }
         if (!allTermQueries) {
-            return query;
+            return builder.build();
         }
         return new TermsQuery(ngramField, allTerms);
     }
diff --git 
a/src/main/java/org/wikimedia/search/extra/safer/DefaultNoopSafeifierActions.java
 
b/src/main/java/org/wikimedia/search/extra/safer/DefaultNoopSafeifierActions.java
index f824370..1c60b48 100644
--- 
a/src/main/java/org/wikimedia/search/extra/safer/DefaultNoopSafeifierActions.java
+++ 
b/src/main/java/org/wikimedia/search/extra/safer/DefaultNoopSafeifierActions.java
@@ -14,15 +14,16 @@
 import org.apache.lucene.search.TermRangeQuery;
 import org.apache.lucene.search.WildcardQuery;
 import org.apache.lucene.search.payloads.PayloadNearQuery;
+import org.apache.lucene.search.payloads.PayloadScoreQuery;
 import org.apache.lucene.search.payloads.PayloadTermQuery;
+import org.apache.lucene.search.payloads.SpanNearPayloadCheckQuery;
+import org.apache.lucene.search.payloads.SpanPayloadCheckQuery;
 import org.apache.lucene.search.spans.FieldMaskingSpanQuery;
 import org.apache.lucene.search.spans.SpanFirstQuery;
 import org.apache.lucene.search.spans.SpanMultiTermQueryWrapper;
-import org.apache.lucene.search.spans.SpanNearPayloadCheckQuery;
 import org.apache.lucene.search.spans.SpanNearQuery;
 import org.apache.lucene.search.spans.SpanNotQuery;
 import org.apache.lucene.search.spans.SpanOrQuery;
-import org.apache.lucene.search.spans.SpanPayloadCheckQuery;
 import org.apache.lucene.search.spans.SpanPositionRangeQuery;
 import org.apache.lucene.search.spans.SpanTermQuery;
 import org.elasticsearch.common.lucene.all.AllTermQuery;
@@ -53,6 +54,7 @@
         safeifier.register(SpanMultiTermQueryWrapper.class, NOOP);
         safeifier.register(SpanNearQuery.class, NOOP);
         safeifier.register(PayloadNearQuery.class, NOOP);
+        safeifier.register(PayloadScoreQuery.class, NOOP);
         safeifier.register(SpanNotQuery.class, NOOP);
         safeifier.register(SpanOrQuery.class, NOOP);
         safeifier.register(SpanNearPayloadCheckQuery.class, NOOP);
diff --git 
a/src/main/java/org/wikimedia/search/extra/safer/DefaultQueryExplodingSafeifierActions.java
 
b/src/main/java/org/wikimedia/search/extra/safer/DefaultQueryExplodingSafeifierActions.java
index 67cf81c..ee11b1e 100644
--- 
a/src/main/java/org/wikimedia/search/extra/safer/DefaultQueryExplodingSafeifierActions.java
+++ 
b/src/main/java/org/wikimedia/search/extra/safer/DefaultQueryExplodingSafeifierActions.java
@@ -2,10 +2,12 @@
 
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.CachingWrapperFilter;
 import org.apache.lucene.search.ConstantScoreQuery;
 import org.apache.lucene.search.DisjunctionMaxQuery;
 import org.apache.lucene.search.FilteredQuery;
 import org.apache.lucene.search.Query;
+import org.apache.lucene.search.QueryWrapperFilter;
 import org.wikimedia.search.extra.safer.Safeifier.Action;
 
 public class DefaultQueryExplodingSafeifierActions {
@@ -13,17 +15,19 @@
         safeifier.register(BooleanQuery.class, BOOLEAN_QUERY_ACTION);
         safeifier.register(DisjunctionMaxQuery.class, 
DISJUNCTION_MAX_QUERY_ACTION);
         safeifier.register(FilteredQuery.class, FILTERED_QUERY_ACTION);
+        safeifier.register(QueryWrapperFilter.class, QUERY_WRAPPER_ACTION);
         safeifier.register(ConstantScoreQuery.class, 
CONSTANT_SCORE_QUERY_ACTION);
     }
 
     private static final Action<BooleanQuery, BooleanQuery> 
BOOLEAN_QUERY_ACTION = new Action<BooleanQuery, BooleanQuery>() {
         @Override
         public BooleanQuery apply(Safeifier safeifier, BooleanQuery bq) {
-            BooleanQuery replaced = new BooleanQuery();
-            replaced.setBoost(bq.getBoost());
-            for (BooleanClause clause : bq.getClauses()) {
-                replaced.add(safeifier.safeify(clause.getQuery()), 
clause.getOccur());
+            BooleanQuery.Builder builder = new BooleanQuery.Builder();
+            for (BooleanClause clause : bq.clauses()) {
+                builder.add(safeifier.safeify(clause.getQuery()), 
clause.getOccur());
             }
+            BooleanQuery replaced = builder.build();
+            replaced.setBoost(bq.getBoost());
             return replaced;
         }
     };
@@ -41,14 +45,22 @@
     private static final Action<FilteredQuery, FilteredQuery> 
FILTERED_QUERY_ACTION = new Action<FilteredQuery, FilteredQuery>() {
         @Override
         public FilteredQuery apply(Safeifier safeifier, FilteredQuery fq) {
-            // FilterQuery is unsafe and banned from Elasticsearch so we
-            // just convert....
             FilteredQuery newQuery = new 
FilteredQuery(safeifier.safeify(fq.getQuery()), fq.getFilter(), 
fq.getFilterStrategy());
             // TODO safeify filters
             newQuery.setBoost(fq.getBoost());
             return newQuery;
         }
     };
+    
+    private static final Action<QueryWrapperFilter, QueryWrapperFilter> 
QUERY_WRAPPER_ACTION = new Action<QueryWrapperFilter, QueryWrapperFilter>() {
+        @Override
+        public QueryWrapperFilter apply(Safeifier safeifier, 
QueryWrapperFilter fq) {
+            QueryWrapperFilter newQuery = new 
QueryWrapperFilter(safeifier.safeify(fq.getQuery()));
+            newQuery.setBoost(fq.getBoost());
+            return newQuery;
+        }
+    };
+
     private static final Action<ConstantScoreQuery, ConstantScoreQuery> 
CONSTANT_SCORE_QUERY_ACTION = new Action<ConstantScoreQuery, 
ConstantScoreQuery>() {
         @Override
         public ConstantScoreQuery apply(Safeifier safeifier, 
ConstantScoreQuery csq) {
diff --git 
a/src/main/java/org/wikimedia/search/extra/safer/phrase/PhraseQueryAdapter.java 
b/src/main/java/org/wikimedia/search/extra/safer/phrase/PhraseQueryAdapter.java
index da3bca8..3cb7775 100644
--- 
a/src/main/java/org/wikimedia/search/extra/safer/phrase/PhraseQueryAdapter.java
+++ 
b/src/main/java/org/wikimedia/search/extra/safer/phrase/PhraseQueryAdapter.java
@@ -59,11 +59,12 @@
 
         @Override
         public Query convertToTermQueries() {
-            BooleanQuery bq = new BooleanQuery();
-            bq.setBoost(pq.getBoost());
+            BooleanQuery.Builder builder = new BooleanQuery.Builder();
             for (Term term : pq.getTerms()) {
-                bq.add(new TermQuery(term), BooleanClause.Occur.MUST);
+                builder.add(new TermQuery(term), BooleanClause.Occur.MUST);
             }
+            BooleanQuery bq = builder.build();
+            bq.setBoost(pq.getBoost());
             return bq;
         }
     }
@@ -93,15 +94,16 @@
 
         @Override
         public Query convertToTermQueries() {
-            BooleanQuery bq = new BooleanQuery();
-            bq.setBoost(pq.getBoost());
+            BooleanQuery.Builder builder = new BooleanQuery.Builder();
             for (Term[] terms : pq.getTermArrays()) {
-                BooleanQuery inner = new BooleanQuery();
+                BooleanQuery.Builder inner = new BooleanQuery.Builder();
                 for (Term term: terms) {
                     inner.add(new TermQuery(term), BooleanClause.Occur.SHOULD);
                 }
-                bq.add(inner, BooleanClause.Occur.MUST);
+                builder.add(inner.build(), BooleanClause.Occur.MUST);
             }
+            BooleanQuery bq = builder.build();
+            bq.setBoost(pq.getBoost());
             return bq;
         }
     }
diff --git 
a/src/test/java/org/wikimedia/search/extra/AbstractPluginIntegrationTest.java 
b/src/test/java/org/wikimedia/search/extra/AbstractPluginIntegrationTest.java
index b20dfd9..da84936 100644
--- 
a/src/test/java/org/wikimedia/search/extra/AbstractPluginIntegrationTest.java
+++ 
b/src/test/java/org/wikimedia/search/extra/AbstractPluginIntegrationTest.java
@@ -1,18 +1,16 @@
 package org.wikimedia.search.extra;
 
-import org.elasticsearch.common.settings.Settings;
+import java.util.Collection;
+import java.util.Collections;
+
+import org.elasticsearch.plugins.Plugin;
 import org.elasticsearch.test.ESIntegTestCase;
 import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
 
 @ClusterScope(scope = ESIntegTestCase.Scope.SUITE, transportClientRatio = 0.0)
 public class AbstractPluginIntegrationTest extends ESIntegTestCase {
-    /**
-     * Enable plugin loading.
-     */
     @Override
-    protected Settings nodeSettings(int nodeOrdinal) {
-        return Settings.settingsBuilder()
-                .put("plugin.types", ExtraPlugin.class.getName())
-                .put(super.nodeSettings(nodeOrdinal)).build();
+    protected Collection<Class<? extends Plugin>> nodePlugins() {
+        return Collections.<Class<? extends 
Plugin>>singletonList(ExtraPlugin.class);
     }
 }
diff --git 
a/src/test/java/org/wikimedia/search/extra/regex/ExceptionsAreSerializableTest.java
 
b/src/test/java/org/wikimedia/search/extra/regex/ExceptionsAreSerializableTest.java
deleted file mode 100644
index 71d19ab..0000000
--- 
a/src/test/java/org/wikimedia/search/extra/regex/ExceptionsAreSerializableTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.wikimedia.search.extra.regex;
-
-import static org.junit.Assert.assertTrue;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-
-import org.apache.lucene.util.automaton.TooComplexToDeterminizeException;
-import org.junit.Test;
-
-/**
- * Exceptions in Elasticsearch must be Serializable by
- * ThrowableObjectOutputStream.
- */
-public class ExceptionsAreSerializableTest {
-    @Test
-    public void unableToAccelerateRegexExceptionIsSerializable() {
-        assertTrue(canSerialize(new UnableToAccelerateRegexException("cat", 3, 
"trigrams")));
-    }
-
-    @Test
-    public void regexTooComplexExceptionIsSerializable() {
-        assertTrue(canSerialize(new RegexTooComplexException(new 
TooComplexToDeterminizeException(null, 10))));
-    }
-
-    public static boolean canSerialize(Throwable t) {
-        try {
-            serialize(t);
-            return true;
-        } catch (Throwable throwable) {
-            return false;
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    public static <T extends Serializable> T serialize(T t) throws 
IOException, ClassNotFoundException {
-        ByteArrayOutputStream stream = new ByteArrayOutputStream();
-        try (ObjectOutputStream outputStream = new ObjectOutputStream(stream)) 
{
-            outputStream.writeObject(t);
-        }
-        try (ObjectInputStream in = new ObjectInputStream(new 
ByteArrayInputStream(stream.toByteArray()))) {
-            return (T) in.readObject();
-        }
-    }
-}
diff --git 
a/src/test/java/org/wikimedia/search/extra/safer/SafeifierNoopQueriesTest.java 
b/src/test/java/org/wikimedia/search/extra/safer/SafeifierNoopQueriesTest.java
index 16e108b..00b3f03 100644
--- 
a/src/test/java/org/wikimedia/search/extra/safer/SafeifierNoopQueriesTest.java
+++ 
b/src/test/java/org/wikimedia/search/extra/safer/SafeifierNoopQueriesTest.java
@@ -18,17 +18,16 @@
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.search.TermRangeQuery;
 import org.apache.lucene.search.WildcardQuery;
+import org.apache.lucene.search.payloads.AveragePayloadFunction;
 import org.apache.lucene.search.payloads.MaxPayloadFunction;
-import org.apache.lucene.search.payloads.PayloadNearQuery;
-import org.apache.lucene.search.payloads.PayloadTermQuery;
+import org.apache.lucene.search.payloads.PayloadScoreQuery;
+import org.apache.lucene.search.payloads.SpanPayloadCheckQuery;
 import org.apache.lucene.search.spans.FieldMaskingSpanQuery;
 import org.apache.lucene.search.spans.SpanFirstQuery;
 import org.apache.lucene.search.spans.SpanMultiTermQueryWrapper;
-import org.apache.lucene.search.spans.SpanNearPayloadCheckQuery;
 import org.apache.lucene.search.spans.SpanNearQuery;
 import org.apache.lucene.search.spans.SpanNotQuery;
 import org.apache.lucene.search.spans.SpanOrQuery;
-import org.apache.lucene.search.spans.SpanPayloadCheckQuery;
 import org.apache.lucene.search.spans.SpanPositionRangeQuery;
 import org.apache.lucene.search.spans.SpanQuery;
 import org.apache.lucene.search.spans.SpanTermQuery;
@@ -59,16 +58,16 @@
                 new FieldMaskingSpanQuery(new SpanTermQuery(t), "test"),
                 new SpanMultiTermQueryWrapper<>(new PrefixQuery(t)),
                 new SpanNearQuery(new SpanQuery[] {new SpanTermQuery(t)}, 1, 
true),
-                new PayloadNearQuery(new SpanQuery[] {new SpanTermQuery(t)}, 
1, true),
+                new PayloadScoreQuery(new SpanNearQuery(new SpanQuery[] {new 
SpanTermQuery(t)}, 1, true), new AveragePayloadFunction()),
                 new SpanNotQuery(new SpanTermQuery(t), new SpanTermQuery(t)),
                 new SpanOrQuery(new SpanTermQuery(t), new SpanTermQuery(t)),
-                new SpanNearPayloadCheckQuery(new SpanNearQuery(new 
SpanQuery[] {new SpanTermQuery(t)}, 1, true), Collections.<byte[]>emptyList()),
+                new SpanPayloadCheckQuery(new SpanNearQuery(new SpanQuery[] 
{new SpanTermQuery(t)}, 1, true), Collections.<byte[]>emptyList()),
                 new SpanPayloadCheckQuery(new SpanTermQuery(t), 
Collections.<byte[]>emptyList()),
                 new SpanPositionRangeQuery(new SpanTermQuery(t), 1, 20),
                 new SpanFirstQuery(new SpanTermQuery(t), 10),
                 new SpanTermQuery(t),
                 new AllTermQuery(t),
-                new PayloadTermQuery(t, new MaxPayloadFunction()),
+                new PayloadScoreQuery(new SpanTermQuery(t), new 
MaxPayloadFunction()),
         };
         for (Query query: queries) {
             query.setBoost(getRandom().nextFloat());
diff --git 
a/src/test/java/org/wikimedia/search/extra/safer/SafeifierQueryExplodingTest.java
 
b/src/test/java/org/wikimedia/search/extra/safer/SafeifierQueryExplodingTest.java
index 0da1f53..0339ba1 100644
--- 
a/src/test/java/org/wikimedia/search/extra/safer/SafeifierQueryExplodingTest.java
+++ 
b/src/test/java/org/wikimedia/search/extra/safer/SafeifierQueryExplodingTest.java
@@ -5,6 +5,7 @@
 
 import org.apache.lucene.search.BooleanClause.Occur;
 import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.BooleanQuery.Builder;
 import org.apache.lucene.search.ConstantScoreQuery;
 import org.apache.lucene.search.DisjunctionMaxQuery;
 import org.apache.lucene.search.FilteredQuery;
@@ -19,16 +20,19 @@
      */
     @Test
     public void booleanQuery() {
-        BooleanQuery in = new BooleanQuery();
+        Builder inB = new Builder();
+        inB.add(pq("1", "2", "3"), Occur.MUST);
+        inB.add(pq("1", "2", "4"), Occur.SHOULD);
+        inB.add(pq("1", "2"), Occur.MUST_NOT);
+        Builder expectedB = new Builder();
+        expectedB.add(tq("1", "2", "3"), Occur.MUST);
+        expectedB.add(tq("1", "2", "4"), Occur.SHOULD);
+        expectedB.add(tq("1", "2"), Occur.MUST_NOT);
+
+        BooleanQuery in = inB.build();
         in.setBoost(getRandom().nextFloat());
-        in.add(pq("1", "2", "3"), Occur.MUST);
-        in.add(pq("1", "2", "4"), Occur.SHOULD);
-        in.add(pq("1", "2"), Occur.MUST_NOT);
-        BooleanQuery expected = new BooleanQuery();
+        BooleanQuery expected = expectedB.build();
         expected.setBoost(in.getBoost());
-        expected.add(tq("1", "2", "3"), Occur.MUST);
-        expected.add(tq("1", "2", "4"), Occur.SHOULD);
-        expected.add(tq("1", "2"), Occur.MUST_NOT);
         assertEquals(expected, flatten(in));
     }
 
@@ -73,4 +77,16 @@
         expected.setBoost(in.getBoost());
         assertEquals(expected, flatten(in));
     }
+    
+    /**
+     * Validate that phrase queries are flattened inside of filtered queries.
+     */
+    @Test
+    public void wrappedQuery() {
+        QueryWrapperFilter in = new QueryWrapperFilter(pq("1", "2"));
+        in.setBoost(getRandom().nextFloat());
+        QueryWrapperFilter expected = new QueryWrapperFilter(tq("1", "2"));
+        expected.setBoost(in.getBoost());
+        assertEquals(expected, flatten(in));
+    }
 }
diff --git a/src/test/java/org/wikimedia/search/extra/safer/SafeifierTest.java 
b/src/test/java/org/wikimedia/search/extra/safer/SafeifierTest.java
index c3d5a04..3a76bc4 100644
--- a/src/test/java/org/wikimedia/search/extra/safer/SafeifierTest.java
+++ b/src/test/java/org/wikimedia/search/extra/safer/SafeifierTest.java
@@ -3,6 +3,7 @@
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.BooleanClause.Occur;
 import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.BooleanQuery.Builder;
 import org.apache.lucene.search.MultiPhraseQuery;
 import org.apache.lucene.search.PhraseQuery;
 import org.apache.lucene.search.Query;
@@ -51,10 +52,11 @@
      */
     // @Test
     public void quickAndDirtyPerfTest() {
-        BooleanQuery q = new BooleanQuery();
+        Builder builder = new Builder();
         for (int i = 0; i < 10; i++) {
-            q.add(pq(10), Occur.MUST);
+            builder.add(pq(10), Occur.MUST);
         }
+        BooleanQuery q = builder.build();
         long start = System.currentTimeMillis();
         for (int i = 0; i < 1000000; i++) {
             PhraseTooLargeActionModule pa = new PhraseTooLargeActionModule();
@@ -69,11 +71,11 @@
      * Generate a phrase query.
      */
     public static PhraseQuery pq(String... terms) {
-        PhraseQuery p = new PhraseQuery();
+        PhraseQuery.Builder builder = new PhraseQuery.Builder();
         for (String term : terms) {
-            p.add(new Term("test", term));
+            builder.add(new Term("test", term));
         }
-        return p;
+        return builder.build();
     }
 
     /**
@@ -81,11 +83,12 @@
      * containing those terms.
      */
     public static BooleanQuery tq(String... terms) {
-        BooleanQuery bq = new BooleanQuery();
+        Builder builder = new Builder();
+
         for (String term : terms) {
-            bq.add(new TermQuery(new Term("test", term)), Occur.MUST);
+            builder.add(new TermQuery(new Term("test", term)), Occur.MUST);
         }
-        return bq;
+        return builder.build();
     }
 
     /**
diff --git 
a/src/test/java/org/wikimedia/search/extra/superdetectnoop/SuperDetectNoopScriptTest.java
 
b/src/test/java/org/wikimedia/search/extra/superdetectnoop/SuperDetectNoopScriptTest.java
index 105062a..02fdfac 100644
--- 
a/src/test/java/org/wikimedia/search/extra/superdetectnoop/SuperDetectNoopScriptTest.java
+++ 
b/src/test/java/org/wikimedia/search/extra/superdetectnoop/SuperDetectNoopScriptTest.java
@@ -12,7 +12,6 @@
 import java.util.Iterator;
 import java.util.Map;
 
-import org.elasticsearch.ElasticsearchException;
 import org.elasticsearch.action.index.IndexResponse;
 import org.elasticsearch.action.update.UpdateRequestBuilder;
 import org.elasticsearch.common.xcontent.XContentBuilder;

-- 
To view, visit https://gerrit.wikimedia.org/r/282120
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I0f6dcbe427ee58b9573bf56b1201766e8f6c9b9b
Gerrit-PatchSet: 2
Gerrit-Project: search/extra
Gerrit-Branch: master
Gerrit-Owner: DCausse <[email protected]>
Gerrit-Reviewer: DCausse <[email protected]>
Gerrit-Reviewer: EBernhardson <[email protected]>
Gerrit-Reviewer: Gehel <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to