Skip to content

Commit 72bd4d9

Browse files
authored
Fix semantic highlighting bug on flat quantized fields (#131525) (#131549)
* Fix semantic highlighting bug on flat quantized fields * Update docs/changelog/131525.yaml (cherry picked from commit 90699d3) # Conflicts: # x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferenceFeatures.java
1 parent 770131d commit 72bd4d9

File tree

5 files changed

+486
-102
lines changed

5 files changed

+486
-102
lines changed

docs/changelog/131525.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pr: 131525
2+
summary: Fix semantic highlighting bug on flat quantized fields
3+
area: Highlighting
4+
type: bug
5+
issues:
6+
- 131443

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferenceFeatures.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public class InferenceFeatures implements FeatureSpecification {
4141
);
4242
private static final NodeFeature SEMANTIC_TEXT_MATCH_ALL_HIGHLIGHTER = new NodeFeature("semantic_text.match_all_highlighter");
4343
private static final NodeFeature COHERE_V2_API = new NodeFeature("inference.cohere.v2");
44+
public static final NodeFeature SEMANTIC_TEXT_HIGHLIGHTING_FLAT = new NodeFeature("semantic_text.highlighter.flat_index_options");
4445

4546
@Override
4647
public Set<NodeFeature> getTestFeatures() {
@@ -70,7 +71,8 @@ public Set<NodeFeature> getTestFeatures() {
7071
SEMANTIC_TEXT_EXCLUDE_SUB_FIELDS_FROM_FIELD_CAPS,
7172
SEMANTIC_TEXT_INDEX_OPTIONS,
7273
COHERE_V2_API,
73-
SEMANTIC_QUERY_REWRITE_INTERCEPTORS_PROPAGATE_BOOST_AND_QUERY_NAME_FIX
74+
SEMANTIC_QUERY_REWRITE_INTERCEPTORS_PROPAGATE_BOOST_AND_QUERY_NAME_FIX,
75+
SEMANTIC_TEXT_HIGHLIGHTING_FLAT
7476
);
7577
}
7678
}

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/highlight/SemanticTextHighlighter.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.elasticsearch.search.fetch.subphase.highlight.HighlightField;
3333
import org.elasticsearch.search.fetch.subphase.highlight.HighlightUtils;
3434
import org.elasticsearch.search.fetch.subphase.highlight.Highlighter;
35+
import org.elasticsearch.search.vectors.DenseVectorQuery;
3536
import org.elasticsearch.search.vectors.SparseVectorQueryWrapper;
3637
import org.elasticsearch.search.vectors.VectorData;
3738
import org.elasticsearch.xcontent.Text;
@@ -273,6 +274,8 @@ public void visitLeaf(Query query) {
273274
queries.add(fieldType.createExactKnnQuery(VectorData.fromBytes(knnQuery.getTargetCopy()), null));
274275
} else if (query instanceof MatchAllDocsQuery) {
275276
queries.add(new MatchAllDocsQuery());
277+
} else if (query instanceof DenseVectorQuery.Floats floatsQuery) {
278+
queries.add(fieldType.createExactKnnQuery(VectorData.fromFloats(floatsQuery.getQuery()), null));
276279
}
277280
}
278281
});

0 commit comments

Comments
 (0)