Skip to content

Commit e99607b

Browse files
authored
Adding breaking change entry for retrievers (#115399)
1 parent 833f2fb commit e99607b

File tree

3 files changed

+31
-2
lines changed

3 files changed

+31
-2
lines changed

docs/changelog/115399.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
pr: 115399
2+
summary: Adding breaking change entry for retrievers
3+
area: Search
4+
type: breaking
5+
issues: []
6+
breaking:
7+
title: Reworking RRF retriever to be evaluated during rewrite phase
8+
area: REST API
9+
details: |-
10+
In this release (8.16), we have introduced major changes to the retrievers framework
11+
and how they can be evaluated, focusing mainly on compound retrievers
12+
like `rrf` and `text_similarity_reranker`, which allowed us to support full
13+
composability (i.e. any retriever can be nested under any compound retriever),
14+
as well as supporting additional search features like collapsing, explaining,
15+
aggregations, and highlighting.
16+
17+
To ensure consistency, and given that this rework is not available until 8.16,
18+
`rrf` and `text_similarity_reranker` retriever queries would now
19+
throw an exception in a mixed cluster scenario, where there are nodes
20+
both in current or later (i.e. >= 8.16) and previous ( <= 8.15) versions.
21+
22+
As part of the rework, we have also removed the `_rank` property from
23+
the responses of an `rrf` retriever.
24+
impact: |-
25+
- Users will not be able to use the `rrf` and `text_similarity_reranker` retrievers in a mixed cluster scenario
26+
with previous releases (i.e. prior to 8.16), and the request will throw an `IllegalArgumentException`.
27+
- `_rank` has now been removed from the output of the `rrf` retrievers so trying to directly parse the field
28+
will throw an exception
29+
notable: false

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public static TextSimilarityRankRetrieverBuilder fromXContent(XContentParser par
8181
throw new ParsingException(parser.getTokenLocation(), "unknown retriever [" + TextSimilarityRankBuilder.NAME + "]");
8282
}
8383
if (context.clusterSupportsFeature(TEXT_SIMILARITY_RERANKER_COMPOSITION_SUPPORTED) == false) {
84-
throw new UnsupportedOperationException(
84+
throw new IllegalArgumentException(
8585
"[text_similarity_reranker] retriever composition feature is not supported by all nodes in the cluster"
8686
);
8787
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public static RRFRetrieverBuilder fromXContent(XContentParser parser, RetrieverP
8383
throw new ParsingException(parser.getTokenLocation(), "unknown retriever [" + NAME + "]");
8484
}
8585
if (context.clusterSupportsFeature(RRF_RETRIEVER_COMPOSITION_SUPPORTED) == false) {
86-
throw new UnsupportedOperationException("[rrf] retriever composition feature is not supported by all nodes in the cluster");
86+
throw new IllegalArgumentException("[rrf] retriever composition feature is not supported by all nodes in the cluster");
8787
}
8888
if (RRFRankPlugin.RANK_RRF_FEATURE.check(XPackPlugin.getSharedLicenseState()) == false) {
8989
throw LicenseUtils.newComplianceException("Reciprocal Rank Fusion (RRF)");

0 commit comments

Comments
 (0)