Skip to content

Commit 2d10bfb

Browse files
davidkyleJoanFM
andauthored
Handle null text values in RankedDocsResults.asMap() (elastic#118597) (elastic#118764)
Co-authored-by: Joan Fontanals <[email protected]>
1 parent 7846d8d commit 2d10bfb

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/inference/results/RankedDocsResults.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,11 @@ public void writeTo(StreamOutput out) throws IOException {
139139
}
140140

141141
public Map<String, Object> asMap() {
142-
return Map.of(NAME, Map.of(INDEX, index, RELEVANCE_SCORE, relevanceScore, TEXT, text));
142+
if (text != null) {
143+
return Map.of(NAME, Map.of(INDEX, index, RELEVANCE_SCORE, relevanceScore, TEXT, text));
144+
} else {
145+
return Map.of(NAME, Map.of(INDEX, index, RELEVANCE_SCORE, relevanceScore));
146+
}
143147
}
144148

145149
@Override

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/inference/results/RankedDocsResultsTests.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@
1212
import org.elasticsearch.common.io.stream.Writeable;
1313
import org.elasticsearch.xcontent.XContentParser;
1414
import org.elasticsearch.xpack.core.ml.AbstractChunkedBWCSerializationTestCase;
15+
import org.hamcrest.Matchers;
1516

1617
import java.io.IOException;
1718
import java.util.ArrayList;
1819
import java.util.List;
20+
import java.util.Map;
1921

2022
public class RankedDocsResultsTests extends AbstractChunkedBWCSerializationTestCase<RankedDocsResults> {
2123

@@ -37,6 +39,16 @@ public static RankedDocsResults.RankedDoc createRandomDoc() {
3739
return new RankedDocsResults.RankedDoc(randomIntBetween(0, 100), randomFloat(), randomBoolean() ? null : randomAlphaOfLength(10));
3840
}
3941

42+
public void test_asMap() {
43+
var index = randomIntBetween(0, 100);
44+
var score = randomFloat();
45+
var mapNullText = new RankedDocsResults.RankedDoc(index, score, null).asMap();
46+
assertThat(mapNullText, Matchers.is(Map.of("ranked_doc", Map.of("index", index, "relevance_score", score))));
47+
48+
var mapWithText = new RankedDocsResults.RankedDoc(index, score, "Sample text").asMap();
49+
assertThat(mapWithText, Matchers.is(Map.of("ranked_doc", Map.of("index", index, "relevance_score", score, "text", "Sample text"))));
50+
}
51+
4052
@Override
4153
protected RankedDocsResults mutateInstance(RankedDocsResults instance) throws IOException {
4254
List<RankedDocsResults.RankedDoc> copy = new ArrayList<>(List.copyOf(instance.getRankedDocs()));

0 commit comments

Comments
 (0)