diff --git a/docs/changelog/125259.yaml b/docs/changelog/125259.yaml new file mode 100644 index 0000000000000..f390886469749 --- /dev/null +++ b/docs/changelog/125259.yaml @@ -0,0 +1,5 @@ +pr: 125259 +summary: Leverage scorer supplier in `QueryFeatureExtractor` +area: Ranking +type: enhancement +issues: [] diff --git a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/inference/ltr/QueryFeatureExtractor.java b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/inference/ltr/QueryFeatureExtractor.java index 2942a1286c443..f3de4fa124c44 100644 --- a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/inference/ltr/QueryFeatureExtractor.java +++ b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/inference/ltr/QueryFeatureExtractor.java @@ -47,9 +47,12 @@ public void setNextReader(LeafReaderContext segmentContext) throws IOException { if (weight == null) { continue; } - Scorer scorer = weight.scorer(segmentContext); - if (scorer != null) { - subScorers.add(new FeatureDisiWrapper(scorer, featureNames.get(i))); + var scorerSupplier = weight.scorerSupplier(segmentContext); + if (scorerSupplier != null) { + var scorer = scorerSupplier.get(0L); + if (scorer != null) { + subScorers.add(new FeatureDisiWrapper(scorer, featureNames.get(i))); + } } } approximation = subScorers.size() > 0 ? new DisjunctionDISIApproximation(subScorers) : null;