Skip to content

Commit 4a951e7

Browse files
Make function score query rewrite a little cheaper (#124637)
Just a random thing I noticed, this seemingly overlooked when porting to the new rewrite API. No need to create a new searcher, we already have one here.
1 parent 9edeaae commit 4a951e7

File tree

2 files changed

+5
-6
lines changed

2 files changed

+5
-6
lines changed

server/src/main/java/org/elasticsearch/common/lucene/search/function/FunctionScoreQuery.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
package org.elasticsearch.common.lucene.search.function;
1111

12-
import org.apache.lucene.index.IndexReader;
1312
import org.apache.lucene.index.LeafReaderContext;
1413
import org.apache.lucene.index.Term;
1514
import org.apache.lucene.search.BooleanClause;
@@ -81,8 +80,8 @@ protected int doHashCode() {
8180
}
8281

8382
@Override
84-
protected ScoreFunction rewrite(IndexReader reader) throws IOException {
85-
Query newFilter = filter.rewrite(new IndexSearcher(reader));
83+
protected ScoreFunction rewrite(IndexSearcher searcher) throws IOException {
84+
Query newFilter = filter.rewrite(searcher);
8685
if (newFilter == filter) {
8786
return this;
8887
}
@@ -215,7 +214,7 @@ public Query rewrite(IndexSearcher searcher) throws IOException {
215214
ScoreFunction[] newFunctions = new ScoreFunction[functions.length];
216215
boolean needsRewrite = (newQ != subQuery);
217216
for (int i = 0; i < functions.length; i++) {
218-
newFunctions[i] = functions[i].rewrite(searcher.getIndexReader());
217+
newFunctions[i] = functions[i].rewrite(searcher);
219218
needsRewrite |= (newFunctions[i] != functions[i]);
220219
}
221220
if (needsRewrite) {

server/src/main/java/org/elasticsearch/common/lucene/search/function/ScoreFunction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99

1010
package org.elasticsearch.common.lucene.search.function;
1111

12-
import org.apache.lucene.index.IndexReader;
1312
import org.apache.lucene.index.LeafReaderContext;
13+
import org.apache.lucene.search.IndexSearcher;
1414

1515
import java.io.IOException;
1616
import java.util.Objects;
@@ -69,7 +69,7 @@ public final int hashCode() {
6969

7070
protected abstract int doHashCode();
7171

72-
protected ScoreFunction rewrite(IndexReader reader) throws IOException {
72+
protected ScoreFunction rewrite(IndexSearcher searcher) throws IOException {
7373
return this;
7474
}
7575
}

0 commit comments

Comments
 (0)