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