Skip to content

Commit f6484e1

Browse files
committed
Added cluster features
1 parent fdb0f88 commit f6484e1

File tree

2 files changed

+26
-43
lines changed

2 files changed

+26
-43
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@
2222
public class RankRRFFeatures implements FeatureSpecification {
2323

2424
public static final NodeFeature LINEAR_RETRIEVER_SUPPORTED = new NodeFeature("linear_retriever_supported");
25+
public static final NodeFeature LINEAR_RETRIEVER_TOP_LEVEL_NORMALIZER = new NodeFeature("linear_retriever.top_level_normalizer");
2526

2627
@Override
2728
public Set<NodeFeature> getFeatures() {
28-
return Set.of(LINEAR_RETRIEVER_SUPPORTED);
29+
return Set.of(LINEAR_RETRIEVER_SUPPORTED, LINEAR_RETRIEVER_TOP_LEVEL_NORMALIZER);
2930
}
3031

3132
@Override

x-pack/plugin/rank-rrf/src/yamlRestTest/resources/rest-api-spec/test/linear/10_linear_retriever.yml

Lines changed: 24 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1336,6 +1336,9 @@ setup:
13361336

13371337
---
13381338
"linear retriever with top-level normalizer - minmax":
1339+
- requires:
1340+
cluster_features: [ "linear_retriever.top_level_normalizer" ]
1341+
reason: "Support for top-level normalizer in linear retriever"
13391342
- do:
13401343
search:
13411344
index: test
@@ -1383,8 +1386,8 @@ setup:
13831386
---
13841387
"linear retriever with top-level normalizer - l2_norm":
13851388
- requires:
1386-
cluster_features: [ "linear_retriever.l2_norm" ]
1387-
reason: "Requires l2_norm normalization support in linear retriever"
1389+
cluster_features: [ "linear_retriever.l2_norm", "linear_retriever.top_level_normalizer" ]
1390+
reason: "Support for L2 normalization and top-level normalizer in linear retriever"
13881391
- do:
13891392
search:
13901393
index: test
@@ -1431,6 +1434,9 @@ setup:
14311434

14321435
---
14331436
"linear retriever with top-level normalizer and per-retriever override":
1437+
- requires:
1438+
cluster_features: [ "linear_retriever.l2_norm", "linear_retriever.top_level_normalizer" ]
1439+
reason: "Support for L2 normalization and top-level normalizer in linear retriever"
14341440
- do:
14351441
search:
14361442
index: test
@@ -1476,24 +1482,11 @@ setup:
14761482
- match: { hits.hits.2._id: "2" }
14771483
- close_to: { hits.hits.2._score: { value: 0.45, error: 0.01} }
14781484

1479-
---
1480-
"linear retriever with top-level normalizer - multi-field format":
1481-
- do:
1482-
search:
1483-
index: test
1484-
body:
1485-
retriever:
1486-
linear:
1487-
normalizer: minmax
1488-
query: one
1489-
fields: [keyword, text]
1490-
1491-
- match: { hits.total.value: 1 }
1492-
- match: { hits.hits.0._id: "1" }
1493-
- close_to: { hits.hits.0._score: { value: 1.0, error: 0.001} }
1494-
14951485
---
14961486
"linear retriever with top-level normalizer - empty results":
1487+
- requires:
1488+
cluster_features: [ "linear_retriever.top_level_normalizer" ]
1489+
reason: "Support for top-level normalizer in linear retriever"
14971490
- do:
14981491
search:
14991492
index: test
@@ -1524,9 +1517,8 @@ setup:
15241517
---
15251518
"Linear retriever with per-retriever normalizer override":
15261519
- requires:
1527-
cluster_features: [ "linear_retriever.l2_norm" ]
1528-
reason: "Support for L2 normalization"
1529-
1520+
cluster_features: [ "linear_retriever.l2_norm", "linear_retriever.top_level_normalizer" ]
1521+
reason: "Support for L2 normalization and top-level normalizer in linear retriever"
15301522
- do:
15311523
search:
15321524
index: test
@@ -1668,6 +1660,9 @@ setup:
16681660

16691661
---
16701662
"Linear retriever with identity normalizer (no normalization)":
1663+
- requires:
1664+
cluster_features: [ "linear_retriever.top_level_normalizer" ]
1665+
reason: "Support for top-level normalizer in linear retriever"
16711666
- do:
16721667
search:
16731668
index: test
@@ -1803,6 +1798,9 @@ setup:
18031798

18041799
---
18051800
"Linear retriever normalization with zero scores":
1801+
- requires:
1802+
cluster_features: [ "linear_retriever.top_level_normalizer" ]
1803+
reason: "Support for top-level normalizer in linear retriever"
18061804
- do:
18071805
search:
18081806
index: test
@@ -1853,26 +1851,11 @@ setup:
18531851
- match: { hits.hits.0._id: "1" }
18541852
- close_to: { hits.hits.0._score: { value: 2.0, error: 0.001} }
18551853

1856-
---
1857-
"Linear retriever with field+query format and normalizer inheritance":
1858-
- requires:
1859-
cluster_features: [ "linear_retriever.multi_fields_query_format_support" ]
1860-
reason: "Support for multi-fields query format"
1861-
1862-
- do:
1863-
search:
1864-
index: test
1865-
body:
1866-
retriever:
1867-
linear:
1868-
fields: ["keyword", "other_keyword"]
1869-
query: "other"
1870-
normalizer: l2_norm
1871-
1872-
- match: { hits.total.value: 2 }
1873-
18741854
---
18751855
"Linear retriever error handling - invalid normalizer":
1856+
- requires:
1857+
cluster_features: [ "linear_retriever.top_level_normalizer" ]
1858+
reason: "Support for top-level normalizer in linear retriever"
18761859
- do:
18771860
catch: /Unknown normalizer \[invalid\]/
18781861
search:
@@ -1897,9 +1880,8 @@ setup:
18971880
---
18981881
"Linear retriever with large score differences and L2 normalization":
18991882
- requires:
1900-
cluster_features: [ "linear_retriever.l2_norm" ]
1901-
reason: "Support for L2 normalization"
1902-
1883+
cluster_features: [ "linear_retriever.l2_norm", "linear_retriever.top_level_normalizer" ]
1884+
reason: "Support for L2 normalization and top-level normalizer in linear retriever"
19031885
- do:
19041886
search:
19051887
index: test

0 commit comments

Comments
 (0)