Commit 641111f
committed
[RRF] Read rank_constant from the combination clause, not combination.parameters
BEHAVIOR FIX on top of opensearch-project#1933. FusionSpec.fromScoreRankerProcessor read
`combination.parameters.rank_constant`, but RRFProcessorFactory — the ground
truth for the score-ranker-processor shape — reads `rank_constant` directly off
the `combination` clause and rejects anything but `weights` under `parameters`.
Two consequences, both caught by an integration test:
- Every user-supplied rank_constant was silently ignored, so fused mode always
ranked with the default 60.
- The shape FusionSpec documented and the IT fixture emitted is rejected by the
real processor with HTTP 400 "provided parameter for combination technique is
not supported. supported parameters are [weights]", so a fused query could
not even reuse an existing RRF pipeline.
Changes:
- Read rank_constant off the combination clause via the shared
RRFScoreNormalizer.resolveRankConstant, so fused mode accepts, rejects and
reports exactly what classic does (absent -> 60, non-integer -> "must be an
integer", outside [1, 10000] -> the range error). Reading it directly here
would silently accept a negative, oversized or fractional value.
- Reject rank_constant under `parameters` with a clear message rather than
falling back to 60 and mis-ranking every query for a user who put it in the
wrong place.
- Report the normalization technique for the rrf shape instead of pinning it to
"none". The score-ranker-processor has no normalization clause so this still
resolves to "none", but an inline fusion block can carry one, and reporting it
lets the caller reject the contradictory pairing instead of silently dropping
what the user asked for.
- Correct the two javadocs that documented the wrong location, and emit
rank_constant in the right place in BaseNeuralSearchIT.createRRFSearchPipeline
(new optional overload; the 3-arg form delegates with null).
Signed-off-by: Daniel Widdis <widdis@gmail.com>1 parent 74f0a90 commit 641111f
4 files changed
Lines changed: 121 additions & 29 deletions
File tree
- src
- main/java/org/opensearch/neuralsearch/query
- testFixtures/java/org/opensearch/neuralsearch
- test/java/org/opensearch/neuralsearch/query
Lines changed: 53 additions & 19 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
| |||
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
36 | | - | |
37 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
38 | 40 | | |
39 | 41 | | |
40 | 42 | | |
| |||
48 | 50 | | |
49 | 51 | | |
50 | 52 | | |
51 | | - | |
| 53 | + | |
| 54 | + | |
52 | 55 | | |
53 | 56 | | |
54 | 57 | | |
| |||
57 | 60 | | |
58 | 61 | | |
59 | 62 | | |
60 | | - | |
| 63 | + | |
61 | 64 | | |
62 | 65 | | |
63 | 66 | | |
| |||
108 | 111 | | |
109 | 112 | | |
110 | 113 | | |
111 | | - | |
| 114 | + | |
112 | 115 | | |
113 | 116 | | |
114 | 117 | | |
| |||
130 | 133 | | |
131 | 134 | | |
132 | 135 | | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
| 136 | + | |
140 | 137 | | |
141 | 138 | | |
142 | 139 | | |
| |||
156 | 153 | | |
157 | 154 | | |
158 | 155 | | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
165 | 163 | | |
166 | 164 | | |
167 | | - | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
168 | 202 | | |
169 | 203 | | |
170 | 204 | | |
| |||
Lines changed: 46 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
37 | 81 | | |
38 | 82 | | |
39 | 83 | | |
| |||
67 | 111 | | |
68 | 112 | | |
69 | 113 | | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
| 114 | + | |
76 | 115 | | |
77 | 116 | | |
78 | 117 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
659 | 659 | | |
660 | 660 | | |
661 | 661 | | |
662 | | - | |
| 662 | + | |
663 | 663 | | |
664 | 664 | | |
665 | 665 | | |
| |||
Lines changed: 21 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2766 | 2766 | | |
2767 | 2767 | | |
2768 | 2768 | | |
| 2769 | + | |
| 2770 | + | |
| 2771 | + | |
| 2772 | + | |
| 2773 | + | |
| 2774 | + | |
| 2775 | + | |
| 2776 | + | |
| 2777 | + | |
| 2778 | + | |
| 2779 | + | |
| 2780 | + | |
| 2781 | + | |
| 2782 | + | |
| 2783 | + | |
| 2784 | + | |
2769 | 2785 | | |
2770 | 2786 | | |
2771 | 2787 | | |
2772 | 2788 | | |
2773 | 2789 | | |
2774 | 2790 | | |
2775 | 2791 | | |
2776 | | - | |
2777 | | - | |
| 2792 | + | |
| 2793 | + | |
| 2794 | + | |
| 2795 | + | |
| 2796 | + | |
2778 | 2797 | | |
2779 | 2798 | | |
2780 | 2799 | | |
| |||
0 commit comments