فهرست منبع

Restore TextSimilarityRankBuilder XContent output (#124564)

Simon Cooper 7 ماه پیش
والد
کامیت
d8e889acb6

+ 5 - 0
docs/changelog/124564.yaml

@@ -0,0 +1,5 @@
+pr: 124564
+summary: Restore `TextSimilarityRankBuilder` XContent output
+area: Ranking
+type: bug
+issues: []

+ 17 - 1
x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/rank/textsimilarity/TextSimilarityRankBuilder.java

@@ -30,6 +30,12 @@ import java.io.IOException;
 import java.util.List;
 import java.util.Objects;
 
+import static org.elasticsearch.xpack.inference.rank.textsimilarity.TextSimilarityRankRetrieverBuilder.FAILURES_ALLOWED_FIELD;
+import static org.elasticsearch.xpack.inference.rank.textsimilarity.TextSimilarityRankRetrieverBuilder.FIELD_FIELD;
+import static org.elasticsearch.xpack.inference.rank.textsimilarity.TextSimilarityRankRetrieverBuilder.INFERENCE_ID_FIELD;
+import static org.elasticsearch.xpack.inference.rank.textsimilarity.TextSimilarityRankRetrieverBuilder.INFERENCE_TEXT_FIELD;
+import static org.elasticsearch.xpack.inference.rank.textsimilarity.TextSimilarityRankRetrieverBuilder.MIN_SCORE_FIELD;
+
 /**
  * A {@code RankBuilder} that enables ranking with text similarity model inference. Supports parameters for configuring the inference call.
  */
@@ -103,7 +109,17 @@ public class TextSimilarityRankBuilder extends RankBuilder {
 
     @Override
     public void doXContent(XContentBuilder builder, Params params) throws IOException {
-        throw new UnsupportedOperationException("This should not be XContent serialized");
+        // this object is not parsed, but it sometimes needs to be output as xcontent
+        // rankWindowSize serialization is handled by the parent class RankBuilder
+        builder.field(INFERENCE_ID_FIELD.getPreferredName(), inferenceId);
+        builder.field(INFERENCE_TEXT_FIELD.getPreferredName(), inferenceText);
+        builder.field(FIELD_FIELD.getPreferredName(), field);
+        if (minScore != null) {
+            builder.field(MIN_SCORE_FIELD.getPreferredName(), minScore);
+        }
+        if (failuresAllowed) {
+            builder.field(FAILURES_ALLOWED_FIELD.getPreferredName(), true);
+        }
     }
 
     @Override