Skip to content

Commit 4ab5574

Browse files
[KNN] Add query vector builder (#2028) (#2029)
* Add query_vector_builder to the knn search object * Add contrib update * Move QueryVector type to knn types, change its type to float * Make QueryVectorBuilder a container to reflect its nature server-side * make contrib * Add deprecation notice for knn_search.Request Co-authored-by: Laurent Saint-Félix <[email protected]>
1 parent 541d49b commit 4ab5574

File tree

6 files changed

+133
-39
lines changed

6 files changed

+133
-39
lines changed

output/schema/schema.json

Lines changed: 99 additions & 30 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

output/schema/validation-errors.json

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

output/typescript/types.ts

Lines changed: 14 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

specification/_global/knn_search/KnnSearchRequest.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import { FieldAndFormat } from '@_types/query_dsl/abstractions'
2727
/**
2828
* @rest_spec_name knn_search
2929
* @since 8.0.0
30+
* @deprecated 8.4.0
3031
* @stability experimental
3132
*/
3233
export interface Request extends RequestBase {

specification/_global/knn_search/_types/Knn.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@
1818
*/
1919

2020
import { Field } from '@_types/common'
21-
import { long, double } from '@_types/Numeric'
22-
23-
export type QueryVector = double[]
21+
import { long, float } from '@_types/Numeric'
22+
import { QueryVector } from '@_types/Knn'
2423

2524
export interface Query {
2625
/** The name of the vector field to search against */

specification/_types/Knn.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,15 @@ import { Field } from '@_types/common'
2121
import { long, double, float } from '@_types/Numeric'
2222
import { QueryContainer } from './query_dsl/abstractions'
2323

24+
export type QueryVector = float[]
25+
2426
export interface KnnQuery {
2527
/** The name of the vector field to search against */
2628
field: Field
2729
/** The query vector */
28-
query_vector: double[]
30+
query_vector?: QueryVector
31+
/** The query vector builder. You must provide a query_vector_builder or query_vector, but not both. */
32+
query_vector_builder?: QueryVectorBuilder
2933
/** The final number of nearest neighbors to return as top hits */
3034
k: long
3135
/** The number of nearest neighbor candidates to consider per shard */
@@ -35,3 +39,13 @@ export interface KnnQuery {
3539
/** Filters for the kNN search query */
3640
filter?: QueryContainer | QueryContainer[]
3741
}
42+
43+
/** @variants container */
44+
export interface QueryVectorBuilder {
45+
text_embedding?: TextEmbedding
46+
}
47+
48+
export interface TextEmbedding {
49+
model_id: string
50+
model_text: string
51+
}

0 commit comments

Comments
 (0)