diff --git a/src/main/java/org/elasticsearch/index/search/child/ChildrenConstantScoreQuery.java b/src/main/java/org/elasticsearch/index/search/child/ChildrenConstantScoreQuery.java index 82c2940a507..700f0fb6f9e 100644 --- a/src/main/java/org/elasticsearch/index/search/child/ChildrenConstantScoreQuery.java +++ b/src/main/java/org/elasticsearch/index/search/child/ChildrenConstantScoreQuery.java @@ -95,6 +95,7 @@ public class ChildrenConstantScoreQuery extends Query { childQuery = rewrittenChildQuery; } IndexSearcher indexSearcher = new IndexSearcher(searcher.getIndexReader()); + indexSearcher.setSimilarity(searcher.getSimilarity()); indexSearcher.search(childQuery, collector); int remaining = collectedUids.v().size(); diff --git a/src/main/java/org/elasticsearch/index/search/child/ChildrenQuery.java b/src/main/java/org/elasticsearch/index/search/child/ChildrenQuery.java index 029ed239f69..98533a461f2 100644 --- a/src/main/java/org/elasticsearch/index/search/child/ChildrenQuery.java +++ b/src/main/java/org/elasticsearch/index/search/child/ChildrenQuery.java @@ -157,6 +157,7 @@ public class ChildrenQuery extends Query { childQuery = rewrittenChildQuery; } IndexSearcher indexSearcher = new IndexSearcher(searcher.getIndexReader()); + indexSearcher.setSimilarity(searcher.getSimilarity()); indexSearcher.search(childQuery, collector); int size = uidToScore.v().size(); diff --git a/src/main/java/org/elasticsearch/index/search/child/DeleteByQueryWrappingFilter.java b/src/main/java/org/elasticsearch/index/search/child/DeleteByQueryWrappingFilter.java index 2fd96107621..0ead91e96de 100644 --- a/src/main/java/org/elasticsearch/index/search/child/DeleteByQueryWrappingFilter.java +++ b/src/main/java/org/elasticsearch/index/search/child/DeleteByQueryWrappingFilter.java @@ -22,6 +22,7 @@ import org.apache.lucene.index.AtomicReaderContext; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.MultiReader; import org.apache.lucene.search.*; +import org.apache.lucene.search.similarities.Similarity; import org.apache.lucene.util.Bits; import org.elasticsearch.search.internal.SearchContext; @@ -65,7 +66,9 @@ public class DeleteByQueryWrappingFilter extends Filter { try { if (!contains(indexReader, context)) { multiReader = new MultiReader(new IndexReader[]{indexReader, context.reader()}, false); + Similarity similarity = searcher.getSimilarity(); searcher = new IndexSearcher(new MultiReader(indexReader, context.reader())); + searcher.setSimilarity(similarity); } weight = searcher.createNormalizedWeight(query); } finally { @@ -78,7 +81,9 @@ public class DeleteByQueryWrappingFilter extends Filter { if (!contains(indexReader, context)) { IndexReader multiReader = new MultiReader(new IndexReader[]{indexReader, context.reader()}, false); try { + Similarity similarity = searcher.getSimilarity(); searcher = new IndexSearcher(multiReader); + searcher.setSimilarity(similarity); weight = searcher.createNormalizedWeight(query); } finally { multiReader.close(); diff --git a/src/main/java/org/elasticsearch/index/search/child/ParentConstantScoreQuery.java b/src/main/java/org/elasticsearch/index/search/child/ParentConstantScoreQuery.java index 31e25afa734..387a8ea5500 100644 --- a/src/main/java/org/elasticsearch/index/search/child/ParentConstantScoreQuery.java +++ b/src/main/java/org/elasticsearch/index/search/child/ParentConstantScoreQuery.java @@ -87,6 +87,7 @@ public class ParentConstantScoreQuery extends Query { parentQuery = rewrittenParentQuery = originalParentQuery.rewrite(searcher.getIndexReader()); } IndexSearcher indexSearcher = new IndexSearcher(searcher.getIndexReader()); + indexSearcher.setSimilarity(searcher.getSimilarity()); indexSearcher.search(parentQuery, collector); if (parents.v().isEmpty()) { diff --git a/src/main/java/org/elasticsearch/index/search/child/ParentQuery.java b/src/main/java/org/elasticsearch/index/search/child/ParentQuery.java index 3d3ce266c26..599a7ebd8d2 100644 --- a/src/main/java/org/elasticsearch/index/search/child/ParentQuery.java +++ b/src/main/java/org/elasticsearch/index/search/child/ParentQuery.java @@ -129,6 +129,7 @@ public class ParentQuery extends Query { parentQuery = rewrittenParentQuery; } IndexSearcher indexSearcher = new IndexSearcher(searcher.getIndexReader()); + indexSearcher.setSimilarity(searcher.getSimilarity()); indexSearcher.search(parentQuery, collector); if (uidToScore.v().isEmpty()) { diff --git a/src/main/java/org/elasticsearch/index/search/child/TopChildrenQuery.java b/src/main/java/org/elasticsearch/index/search/child/TopChildrenQuery.java index 3300ea39957..1d686cd828d 100644 --- a/src/main/java/org/elasticsearch/index/search/child/TopChildrenQuery.java +++ b/src/main/java/org/elasticsearch/index/search/child/TopChildrenQuery.java @@ -124,6 +124,7 @@ public class TopChildrenQuery extends Query { } IndexSearcher indexSearcher = new IndexSearcher(searcher.getIndexReader()); + indexSearcher.setSimilarity(searcher.getSimilarity()); while (true) { parentDocs.v().clear(); TopDocs topChildDocs = indexSearcher.search(childQuery, numChildDocs);