3
3
# top-n query at the shard level
4
4
5
5
knnSearch
6
- required_capability: knn_function
6
+ required_capability: knn_function_v2
7
7
8
8
// tag::knn-function[]
9
9
from colors metadata _score
10
- | where knn(rgb_vector, [0, 120, 0])
10
+ | where knn(rgb_vector, [0, 120, 0], 10 )
11
11
| sort _score desc, color asc
12
12
// end::knn-function[]
13
13
| keep color, rgb_vector
@@ -29,31 +29,12 @@ chartreuse | [127.0, 255.0, 0.0]
29
29
// end::knn-function-result[]
30
30
;
31
31
32
- knnSearchWithKOption
33
- required_capability: knn_function
34
-
35
- // tag::knn-function-options[]
36
- from colors metadata _score
37
- | where knn(rgb_vector, [0,255,255], {"k": 4})
38
- | sort _score desc, color asc
39
- // end::knn-function-options[]
40
- | keep color, rgb_vector
41
- | limit 4
42
- ;
43
-
44
- color:text | rgb_vector:dense_vector
45
- cyan | [0.0, 255.0, 255.0]
46
- turquoise | [64.0, 224.0, 208.0]
47
- aqua marine | [127.0, 255.0, 212.0]
48
- teal | [0.0, 128.0, 128.0]
49
- ;
50
-
51
- # https://github.com/elastic/elasticsearch/issues/129550
32
+ # https://github.com/elastic/elasticsearch/issues/129550 - Add as an example to knn function documentation
52
33
knnSearchWithSimilarityOption-Ignore
53
- required_capability: knn_function
34
+ required_capability: knn_function_v2
54
35
55
36
from colors metadata _score
56
- | where knn(rgb_vector, [255,192,203], {"k": 140, "similarity": 40})
37
+ | where knn(rgb_vector, [255,192,203], 140, { "similarity": 40})
57
38
| sort _score desc, color asc
58
39
| keep color, rgb_vector
59
40
;
@@ -63,14 +44,13 @@ pink | [255.0, 192.0, 203.0]
63
44
peach puff | [255.0, 218.0, 185.0]
64
45
bisque | [255.0, 228.0, 196.0]
65
46
wheat | [245.0, 222.0, 179.0]
66
-
67
47
;
68
48
69
49
knnHybridSearch
70
- required_capability: knn_function
50
+ required_capability: knn_function_v2
71
51
72
52
from colors metadata _score
73
- | where match(color, "blue") or knn(rgb_vector, [65,105,225], {"k": 140} )
53
+ | where match(color, "blue") or knn(rgb_vector, [65,105,225], 140)
74
54
| where primary == true
75
55
| sort _score desc, color asc
76
56
| keep color, rgb_vector
@@ -90,10 +70,10 @@ yellow | [255.0, 255.0, 0.0]
90
70
;
91
71
92
72
knnWithMultipleFunctions
93
- required_capability: knn_function
73
+ required_capability: knn_function_v2
94
74
95
75
from colors metadata _score
96
- | where knn(rgb_vector, [128,128,0], {"k": 140} ) and match(color, "olive")
76
+ | where knn(rgb_vector, [128,128,0], 140) and match(color, "olive")
97
77
| sort _score desc, color asc
98
78
| keep color, rgb_vector
99
79
;
@@ -103,11 +83,11 @@ olive | [128.0, 128.0, 0.0]
103
83
;
104
84
105
85
knnAfterKeep
106
- required_capability: knn_function
86
+ required_capability: knn_function_v2
107
87
108
88
from colors metadata _score
109
89
| keep rgb_vector, color, _score
110
- | where knn(rgb_vector, [128,255,0], {"k": 140} )
90
+ | where knn(rgb_vector, [128,255,0], 140)
111
91
| sort _score desc, color asc
112
92
| keep rgb_vector
113
93
| limit 5
@@ -122,11 +102,11 @@ rgb_vector:dense_vector
122
102
;
123
103
124
104
knnAfterDrop
125
- required_capability: knn_function
105
+ required_capability: knn_function_v2
126
106
127
107
from colors metadata _score
128
108
| drop primary
129
- | where knn(rgb_vector, [128,250,0], {"k": 140} )
109
+ | where knn(rgb_vector, [128,250,0], 140)
130
110
| sort _score desc, color asc
131
111
| keep color, rgb_vector
132
112
| limit 5
@@ -141,11 +121,11 @@ lime | [0.0, 255.0, 0.0]
141
121
;
142
122
143
123
knnAfterEval
144
- required_capability: knn_function
124
+ required_capability: knn_function_v2
145
125
146
126
from colors metadata _score
147
127
| eval composed_name = locate(color, " ") > 0
148
- | where knn(rgb_vector, [128,128,0], {"k": 140} )
128
+ | where knn(rgb_vector, [128,128,0], 140)
149
129
| sort _score desc, color asc
150
130
| keep color, composed_name
151
131
| limit 5
@@ -160,11 +140,11 @@ golden rod | true
160
140
;
161
141
162
142
knnWithConjunction
163
- required_capability: knn_function
143
+ required_capability: knn_function_v2
164
144
165
145
# TODO We need kNN prefiltering here so we get more candidates that pass the filter
166
146
from colors metadata _score
167
- | where knn(rgb_vector, [255,255,238], {"k": 140} ) and hex_code like "#FFF*"
147
+ | where knn(rgb_vector, [255,255,238], 140) and hex_code like "#FFF*"
168
148
| sort _score desc, color asc
169
149
| keep color, hex_code, rgb_vector
170
150
| limit 10
@@ -181,11 +161,11 @@ yellow | #FFFF00 | [255.0, 255.0, 0.0]
181
161
;
182
162
183
163
knnWithDisjunctionAndFiltersConjunction
184
- required_capability: knn_function
164
+ required_capability: knn_function_v2
185
165
186
166
# TODO We need kNN prefiltering here so we get more candidates that pass the filter
187
167
from colors metadata _score
188
- | where (knn(rgb_vector, [0,255,255], {"k": 140} ) or knn(rgb_vector, [128, 0, 255], {"k": 140} )) and primary == true
168
+ | where (knn(rgb_vector, [0,255,255], 140) or knn(rgb_vector, [128, 0, 255], 140)) and primary == true
189
169
| keep color, rgb_vector, _score
190
170
| sort _score desc, color asc
191
171
| drop _score
@@ -205,11 +185,11 @@ yellow | [255.0, 255.0, 0.0]
205
185
;
206
186
207
187
knnWithNonPushableConjunction
208
- required_capability: knn_function
188
+ required_capability: knn_function_v2
209
189
210
190
from colors metadata _score
211
191
| eval composed_name = locate(color, " ") > 0
212
- | where knn(rgb_vector, [128,128,0], {"k": 140} ) and composed_name == false
192
+ | where knn(rgb_vector, [128,128,0], 140) and composed_name == false
213
193
| sort _score desc, color asc
214
194
| keep color, composed_name
215
195
| limit 10
@@ -230,10 +210,10 @@ maroon | false
230
210
231
211
# https://github.com/elastic/elasticsearch/issues/129550
232
212
testKnnWithNonPushableDisjunctions-Ignore
233
- required_capability: knn_function
213
+ required_capability: knn_function_v2
234
214
235
215
from colors metadata _score
236
- | where knn(rgb_vector, [128,128,0], {"k": 140, "similarity": 30}) or length(color) > 10
216
+ | where knn(rgb_vector, [128,128,0], 140, { "similarity": 30}) or length(color) > 10
237
217
| sort _score desc, color asc
238
218
| keep color
239
219
;
@@ -247,10 +227,10 @@ papaya whip
247
227
248
228
# https://github.com/elastic/elasticsearch/issues/129550
249
229
testKnnWithNonPushableDisjunctionsOnComplexExpressions-Ignore
250
- required_capability: knn_function
230
+ required_capability: knn_function_v2
251
231
252
232
from colors metadata _score
253
- | where (knn(rgb_vector, [128,128,0], {"k": 140, "similarity": 70}) and length(color) < 10) or (knn(rgb_vector, [128,0,128], {"k": 140, "similarity": 60}) and primary == false)
233
+ | where (knn(rgb_vector, [128,128,0], 140, { "similarity": 70}) and length(color) < 10) or (knn(rgb_vector, [128,0,128], 140, { "similarity": 60}) and primary == false)
254
234
| sort _score desc, color asc
255
235
| keep color, primary
256
236
;
@@ -262,24 +242,24 @@ indigo | false
262
242
;
263
243
264
244
testKnnInStatsNonPushable
265
- required_capability: knn_function
245
+ required_capability: knn_function_v2
266
246
267
247
from colors
268
248
| where length(color) < 10
269
- | stats c = count(*) where knn(rgb_vector, [128,128,255], {"k": 140} )
249
+ | stats c = count(*) where knn(rgb_vector, [128,128,255], 140)
270
250
;
271
251
272
252
c: long
273
253
50
274
254
;
275
255
276
256
testKnnInStatsWithGrouping
277
- required_capability: knn_function
257
+ required_capability: knn_function_v2
278
258
required_capability: full_text_functions_in_stats_where
279
259
280
260
from colors
281
261
| where length(color) < 10
282
- | stats c = count(*) where knn(rgb_vector, [128,128,255], {"k": 140} ) by primary
262
+ | stats c = count(*) where knn(rgb_vector, [128,128,255], 140) by primary
283
263
;
284
264
285
265
c: long | primary: boolean
0 commit comments