Skip to content

Commit d4ac122

Browse files
Adding test for highlighting
1 parent 0821047 commit d4ac122

File tree

2 files changed

+29
-12
lines changed

2 files changed

+29
-12
lines changed

x-pack/plugin/inference/src/internalClusterTest/java/org/elasticsearch/xpack/inference/integration/SemanticTextIndexVersionIT.java

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77

88
package org.elasticsearch.xpack.inference.integration;
99

10-
import org.elasticsearch.action.DocWriteResponse;;
10+
import org.elasticsearch.action.DocWriteResponse;
1111
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
1212
import org.elasticsearch.action.search.SearchRequest;
1313
import org.elasticsearch.common.settings.Settings;
1414
import org.elasticsearch.core.TimeValue;
1515
import org.elasticsearch.index.IndexVersion;
16+
import org.elasticsearch.index.mapper.InferenceMetadataFieldsMapper;
1617
import org.elasticsearch.license.LicenseSettings;
1718
import org.elasticsearch.plugins.Plugin;
1819
import org.elasticsearch.search.builder.SearchSourceBuilder;
@@ -45,7 +46,7 @@ public class SemanticTextIndexVersionIT extends ESIntegTestCase {
4546
private static final IndexVersion SEMANTIC_TEXT_INTRODUCED_VERSION = IndexVersion.fromId(8512000);
4647

4748
private Set<IndexVersion> availableVersions;
48-
private static final int MIN_NUMBER_OF_TESTS_TO_RUN = 1;
49+
private static final int MIN_NUMBER_OF_TESTS_TO_RUN = 10;
4950

5051
@Before
5152
public void setup() throws Exception {
@@ -154,16 +155,25 @@ public void testSemanticText() throws Exception {
154155
assertHitCount(response, 1L);
155156
});
156157

157-
//Semantic Search with highlighter
158-
SearchSourceBuilder sourceHighlighterBuilder = new SearchSourceBuilder()
159-
.query(new SemanticQueryBuilder("semantic_field", "inference"))
160-
.highlighter(new HighlightBuilder().field(new HighlightBuilder.Field("semantic_field").numOfFragments(1)))
161-
.trackTotalHits(true);
162-
163-
assertResponse(client().search(new SearchRequest(indexName).source(sourceBuilder)), response -> {
164-
assertHitCount(response, 1L);
165-
assertHighlight(response, 0, "semantic_field", 0, 2, equalTo("inference"));
166-
});
158+
//Semantic Search with highlighter only available from 8.18 and 9.0
159+
Settings settings = client().admin()
160+
.indices()
161+
.prepareGetSettings(TimeValue.THIRTY_SECONDS, indexName)
162+
.get()
163+
.getIndexToSettings()
164+
.get(indexName);
165+
166+
if (InferenceMetadataFieldsMapper.isEnabled(settings)) {
167+
SearchSourceBuilder sourceHighlighterBuilder = new SearchSourceBuilder()
168+
.query(new SemanticQueryBuilder("semantic_field", "inference"))
169+
.highlighter(new HighlightBuilder().field("semantic_field"))
170+
.trackTotalHits(true);
171+
172+
assertResponse(client().search(new SearchRequest(indexName).source(sourceHighlighterBuilder)), response -> {
173+
assertHighlight(response, 0, "semantic_field", 0, 2, equalTo("inference test"));
174+
assertHighlight(response, 0, "semantic_field", 1, 2, equalTo("another inference test"));
175+
});
176+
}
167177
}
168178
}
169179
}

x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/LocalStateInferencePlugin.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@
1515
import org.elasticsearch.inference.InferenceServiceExtension;
1616
import org.elasticsearch.license.XPackLicenseState;
1717
import org.elasticsearch.plugins.SearchPlugin;
18+
import org.elasticsearch.search.fetch.subphase.highlight.Highlighter;
1819
import org.elasticsearch.xpack.core.LocalStateCompositeXPackPlugin;
1920
import org.elasticsearch.xpack.core.ml.inference.MlInferenceNamedXContentProvider;
2021
import org.elasticsearch.xpack.core.ml.search.SparseVectorQueryBuilder;
2122
import org.elasticsearch.xpack.core.ssl.SSLService;
23+
import org.elasticsearch.xpack.inference.highlight.SemanticTextHighlighter;
2224
import org.elasticsearch.xpack.inference.mock.TestDenseInferenceServiceExtension;
2325
import org.elasticsearch.xpack.inference.mock.TestSparseInferenceServiceExtension;
2426

@@ -68,6 +70,11 @@ public Map<String, Mapper.TypeParser> getMappers() {
6870
return inferencePlugin.getMappers();
6971
}
7072

73+
@Override
74+
public Map<String, Highlighter> getHighlighters() {
75+
return Map.of(SemanticTextHighlighter.NAME, new SemanticTextHighlighter());
76+
}
77+
7178
@Override
7279
public Collection<MappedActionFilter> getMappedActionFilters() {
7380
return inferencePlugin.getMappedActionFilters();

0 commit comments

Comments
 (0)