Skip to content

Commit 22bd2a0

Browse files
committed
leniency is only part of the text similarity builders
1 parent 1ac18fe commit 22bd2a0

File tree

9 files changed

+30
-35
lines changed

9 files changed

+30
-35
lines changed

server/src/internalClusterTest/java/org/elasticsearch/search/rank/FieldBasedRerankerIT.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public static FieldBasedRankBuilder fromXContent(XContentParser parser) throws I
100100
}
101101

102102
public FieldBasedRankBuilder(final int rankWindowSize, final String field) {
103-
super(rankWindowSize, false);
103+
super(rankWindowSize);
104104
this.field = field;
105105
}
106106

@@ -205,7 +205,7 @@ public RankShardResult buildRankFeatureShardResult(SearchHits hits, int shardId)
205205

206206
@Override
207207
public RankFeaturePhaseRankCoordinatorContext buildRankFeaturePhaseCoordinatorContext(int size, int from, Client client) {
208-
return new RankFeaturePhaseRankCoordinatorContext(size, from, rankWindowSize(), isLenient()) {
208+
return new RankFeaturePhaseRankCoordinatorContext(size, from, rankWindowSize(), false) {
209209
@Override
210210
protected void computeScores(RankFeatureDoc[] featureDocs, ActionListener<float[]> scoreListener) {
211211
float[] scores = new float[featureDocs.length];
@@ -346,7 +346,7 @@ public RankShardResult buildRankFeatureShardResult(SearchHits hits, int shardId)
346346
@Override
347347
public RankFeaturePhaseRankCoordinatorContext buildRankFeaturePhaseCoordinatorContext(int size, int from, Client client) {
348348
if (this.throwingRankBuilderType == ThrowingRankBuilderType.THROWING_RANK_FEATURE_PHASE_COORDINATOR_CONTEXT)
349-
return new RankFeaturePhaseRankCoordinatorContext(size, from, rankWindowSize(), isLenient()) {
349+
return new RankFeaturePhaseRankCoordinatorContext(size, from, rankWindowSize(), false) {
350350
@Override
351351
protected void computeScores(RankFeatureDoc[] featureDocs, ActionListener<float[]> scoreListener) {
352352
throw new UnsupportedOperationException("rfc - simulated failure");

server/src/internalClusterTest/java/org/elasticsearch/search/rank/MockedRequestActionBasedRerankerIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ public MockRequestActionBasedRankBuilder(
337337
final String inferenceText,
338338
final float minScore
339339
) {
340-
super(rankWindowSize, false);
340+
super(rankWindowSize);
341341
this.field = field;
342342
this.inferenceId = inferenceId;
343343
this.inferenceText = inferenceText;

server/src/main/java/org/elasticsearch/search/rank/RankBuilder.java

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
import org.apache.lucene.search.Explanation;
1313
import org.apache.lucene.search.Query;
14-
import org.elasticsearch.TransportVersions;
1514
import org.elasticsearch.client.internal.Client;
1615
import org.elasticsearch.common.Strings;
1716
import org.elasticsearch.common.io.stream.StreamInput;
@@ -43,32 +42,21 @@
4342
public abstract class RankBuilder implements VersionedNamedWriteable, ToXContentObject {
4443

4544
public static final ParseField RANK_WINDOW_SIZE_FIELD = new ParseField("rank_window_size");
46-
public static final ParseField LENIENT_FIELD = new ParseField("lenient");
4745

4846
public static final int DEFAULT_RANK_WINDOW_SIZE = SearchService.DEFAULT_SIZE;
4947

5048
private final int rankWindowSize;
51-
private final boolean lenient;
5249

53-
public RankBuilder(int rankWindowSize, boolean lenient) {
50+
public RankBuilder(int rankWindowSize) {
5451
this.rankWindowSize = rankWindowSize;
55-
this.lenient = lenient;
5652
}
5753

5854
public RankBuilder(StreamInput in) throws IOException {
5955
rankWindowSize = in.readVInt();
60-
if (in.getTransportVersion().onOrAfter(TransportVersions.LENIENT_RERANKERS)) {
61-
lenient = in.readBoolean();
62-
} else {
63-
lenient = false;
64-
}
6556
}
6657

6758
public final void writeTo(StreamOutput out) throws IOException {
6859
out.writeVInt(rankWindowSize);
69-
if (out.getTransportVersion().onOrAfter(TransportVersions.LENIENT_RERANKERS)) {
70-
out.writeBoolean(lenient);
71-
}
7260
doWriteTo(out);
7361
}
7462

@@ -79,9 +67,6 @@ public final XContentBuilder toXContent(XContentBuilder builder, Params params)
7967
builder.startObject();
8068
builder.startObject(getWriteableName());
8169
builder.field(RANK_WINDOW_SIZE_FIELD.getPreferredName(), rankWindowSize);
82-
if (lenient) {
83-
builder.field(LENIENT_FIELD.getPreferredName(), lenient);
84-
}
8570
doXContent(builder, params);
8671
builder.endObject();
8772
builder.endObject();
@@ -94,10 +79,6 @@ public int rankWindowSize() {
9479
return rankWindowSize;
9580
}
9681

97-
public boolean isLenient() {
98-
return lenient;
99-
}
100-
10182
/**
10283
* Specify whether this rank builder is a compound builder or not. A compound builder is a rank builder that requires
10384
* two or more queries to be executed in order to generate the final result.
@@ -153,14 +134,14 @@ public final boolean equals(Object obj) {
153134
return false;
154135
}
155136
RankBuilder other = (RankBuilder) obj;
156-
return rankWindowSize == other.rankWindowSize && lenient == other.lenient && doEquals(other);
137+
return rankWindowSize == other.rankWindowSize && doEquals(other);
157138
}
158139

159140
protected abstract boolean doEquals(RankBuilder other);
160141

161142
@Override
162143
public final int hashCode() {
163-
return Objects.hash(getClass(), rankWindowSize, lenient, doHashCode());
144+
return Objects.hash(getClass(), rankWindowSize, doHashCode());
164145
}
165146

166147
protected abstract int doHashCode();

server/src/test/java/org/elasticsearch/action/search/RankFeaturePhaseTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -867,7 +867,7 @@ private RankBuilder rankBuilder(
867867
RankFeaturePhaseRankShardContext rankFeaturePhaseRankShardContext,
868868
RankFeaturePhaseRankCoordinatorContext rankFeaturePhaseRankCoordinatorContext
869869
) {
870-
return new RankBuilder(rankWindowSize, false) {
870+
return new RankBuilder(rankWindowSize) {
871871
@Override
872872
protected void doWriteTo(StreamOutput out) throws IOException {
873873
// no-op

server/src/test/java/org/elasticsearch/search/rank/RankFeatureShardPhaseTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public boolean isCancelled() {
117117
}
118118

119119
private RankBuilder getRankBuilder(final String field) {
120-
return new RankBuilder(DEFAULT_RANK_WINDOW_SIZE, false) {
120+
return new RankBuilder(DEFAULT_RANK_WINDOW_SIZE) {
121121
@Override
122122
protected void doWriteTo(StreamOutput out) throws IOException {
123123
// no-op

test/framework/src/main/java/org/elasticsearch/search/rank/TestRankBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public static TestRankBuilder randomRankBuilder() {
5252
}
5353

5454
public TestRankBuilder(int windowSize) {
55-
super(windowSize, false);
55+
super(windowSize);
5656
}
5757

5858
public TestRankBuilder(StreamInput in) throws IOException {

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/rank/random/RandomRankBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public class RandomRankBuilder extends RankBuilder {
6161
private final Integer seed;
6262

6363
public RandomRankBuilder(int rankWindowSize, String field, Integer seed) {
64-
super(rankWindowSize, false);
64+
super(rankWindowSize);
6565

6666
if (field == null || field.isEmpty()) {
6767
throw new IllegalArgumentException("field is required");

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

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import static org.elasticsearch.xpack.inference.rank.textsimilarity.TextSimilarityRankRetrieverBuilder.FIELD_FIELD;
3737
import static org.elasticsearch.xpack.inference.rank.textsimilarity.TextSimilarityRankRetrieverBuilder.INFERENCE_ID_FIELD;
3838
import static org.elasticsearch.xpack.inference.rank.textsimilarity.TextSimilarityRankRetrieverBuilder.INFERENCE_TEXT_FIELD;
39+
import static org.elasticsearch.xpack.inference.rank.textsimilarity.TextSimilarityRankRetrieverBuilder.LENIENT_FIELD;
3940
import static org.elasticsearch.xpack.inference.rank.textsimilarity.TextSimilarityRankRetrieverBuilder.MIN_SCORE_FIELD;
4041

4142
/**
@@ -75,6 +76,7 @@ public class TextSimilarityRankBuilder extends RankBuilder {
7576
private final String inferenceText;
7677
private final String field;
7778
private final Float minScore;
79+
private final boolean lenient;
7880

7981
public TextSimilarityRankBuilder(
8082
String field,
@@ -84,11 +86,12 @@ public TextSimilarityRankBuilder(
8486
Float minScore,
8587
boolean lenient
8688
) {
87-
super(rankWindowSize, lenient);
89+
super(rankWindowSize);
8890
this.inferenceId = inferenceId;
8991
this.inferenceText = inferenceText;
9092
this.field = field;
9193
this.minScore = minScore;
94+
this.lenient = lenient;
9295
}
9396

9497
public TextSimilarityRankBuilder(StreamInput in) throws IOException {
@@ -98,6 +101,11 @@ public TextSimilarityRankBuilder(StreamInput in) throws IOException {
98101
this.inferenceText = in.readString();
99102
this.field = in.readString();
100103
this.minScore = in.readOptionalFloat();
104+
if (in.getTransportVersion().onOrAfter(TransportVersions.LENIENT_RERANKERS)) {
105+
this.lenient = in.readBoolean();
106+
} else {
107+
this.lenient = false;
108+
}
101109
}
102110

103111
@Override
@@ -112,22 +120,28 @@ public TransportVersion getMinimalSupportedVersion() {
112120

113121
@Override
114122
public void doWriteTo(StreamOutput out) throws IOException {
115-
// rankWindowSize & lenient serialization is handled by the parent class RankBuilder
123+
// rankWindowSize serialization is handled by the parent class RankBuilder
116124
out.writeString(inferenceId);
117125
out.writeString(inferenceText);
118126
out.writeString(field);
119127
out.writeOptionalFloat(minScore);
128+
if (out.getTransportVersion().onOrAfter(TransportVersions.LENIENT_RERANKERS)) {
129+
out.writeBoolean(lenient);
130+
}
120131
}
121132

122133
@Override
123134
public void doXContent(XContentBuilder builder, Params params) throws IOException {
124-
// rankWindowSize & lenient serialization is handled by the parent class RankBuilder
135+
// rankWindowSize serialization is handled by the parent class RankBuilder
125136
builder.field(INFERENCE_ID_FIELD.getPreferredName(), inferenceId);
126137
builder.field(INFERENCE_TEXT_FIELD.getPreferredName(), inferenceText);
127138
builder.field(FIELD_FIELD.getPreferredName(), field);
128139
if (minScore != null) {
129140
builder.field(MIN_SCORE_FIELD.getPreferredName(), minScore);
130141
}
142+
if (lenient) {
143+
builder.field(LENIENT_FIELD.getPreferredName(), lenient);
144+
}
131145
}
132146

133147
@Override
@@ -187,7 +201,7 @@ public RankFeaturePhaseRankCoordinatorContext buildRankFeaturePhaseCoordinatorCo
187201
inferenceId,
188202
inferenceText,
189203
minScore,
190-
isLenient()
204+
lenient
191205
);
192206
}
193207

x-pack/plugin/rank-rrf/src/main/java/org/elasticsearch/xpack/rank/rrf/RRFRankBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public void doXContent(XContentBuilder builder, Params params) throws IOExceptio
7979
private final int rankConstant;
8080

8181
public RRFRankBuilder(int rankWindowSize, int rankConstant) {
82-
super(rankWindowSize, false);
82+
super(rankWindowSize);
8383

8484
if (rankConstant < 1) {
8585
throw new IllegalArgumentException("[rank_constant] must be greater or equal to [1] for [rrf]");

0 commit comments

Comments
 (0)