diff --git a/output/openapi/elasticsearch-openapi.json b/output/openapi/elasticsearch-openapi.json index cf858896eb..6a83d60a50 100644 --- a/output/openapi/elasticsearch-openapi.json +++ b/output/openapi/elasticsearch-openapi.json @@ -86267,7 +86267,7 @@ ] }, "rescore_vector": { - "description": "The rescore vector options. This is only applicable to `bbq_hnsw`, `int4_hnsw`, `int8_hnsw`, `bbq_flat`, `int4_flat`, and `int8_flat` index types.", + "description": "The rescore vector options. This is only applicable to `bbq_disk`, `bbq_hnsw`, `int4_hnsw`, `int8_hnsw`, `bbq_flat`, `int4_flat`, and `int8_flat` index types.", "allOf": [ { "$ref": "#/components/schemas/_types.mapping.DenseVectorIndexOptionsRescoreVector" @@ -86284,6 +86284,7 @@ "enum": [ "bbq_flat", "bbq_hnsw", + "bbq_disk", "flat", "hnsw", "int4_flat", diff --git a/output/openapi/elasticsearch-serverless-openapi.json b/output/openapi/elasticsearch-serverless-openapi.json index 7b10705431..dd7535d4da 100644 --- a/output/openapi/elasticsearch-serverless-openapi.json +++ b/output/openapi/elasticsearch-serverless-openapi.json @@ -58489,7 +58489,7 @@ ] }, "rescore_vector": { - "description": "The rescore vector options. This is only applicable to `bbq_hnsw`, `int4_hnsw`, `int8_hnsw`, `bbq_flat`, `int4_flat`, and `int8_flat` index types.", + "description": "The rescore vector options. This is only applicable to `bbq_disk`, `bbq_hnsw`, `int4_hnsw`, `int8_hnsw`, `bbq_flat`, `int4_flat`, and `int8_flat` index types.", "allOf": [ { "$ref": "#/components/schemas/_types.mapping.DenseVectorIndexOptionsRescoreVector" diff --git a/output/schema/schema.json b/output/schema/schema.json index e6cbdae071..08cd30b973 100644 --- a/output/schema/schema.json +++ b/output/schema/schema.json @@ -83497,7 +83497,7 @@ } }, { - "description": "The rescore vector options. This is only applicable to `bbq_hnsw`, `int4_hnsw`, `int8_hnsw`, `bbq_flat`, `int4_flat`, and `int8_flat` index types.", + "description": "The rescore vector options. This is only applicable to `bbq_disk`, `bbq_hnsw`, `int4_hnsw`, `int8_hnsw`, `bbq_flat`, `int4_flat`, and `int8_flat` index types.", "name": "rescore_vector", "required": false, "type": { @@ -83531,7 +83531,7 @@ } } ], - "specLocation": "_types/mapping/DenseVectorProperty.ts#L215-L223" + "specLocation": "_types/mapping/DenseVectorProperty.ts#L224-L232" }, { "kind": "enum", @@ -83544,6 +83544,16 @@ "description": "This utilizes the HNSW algorithm in addition to automatic binary quantization for scalable approximate kNN\nsearch with `element_type` of `float`.\n\nThis can reduce the memory footprint by nearly 32x at the cost of some accuracy.", "name": "bbq_hnsw" }, + { + "availability": { + "stack": { + "since": "9.2.0", + "stability": "stable" + } + }, + "description": "This utilizes the DiskBBQ algorithm, a version of Inverted Vector File (IVF) that uses BBQ to quantize vectors.\nOnly supports `element_type` of `float`.\n\nThis not only significantly reduces memory usage, but also allows for indexing and searching of very large datasets that do not fit in memory.\nUnlike HNSW, this index type loses performance gracefully as the index grows larger than memory.", + "name": "bbq_disk" + }, { "description": "This utilizes a brute-force search algorithm for exact kNN search. This supports all `element_type` values.", "name": "flat" @@ -83573,7 +83583,7 @@ "name": "DenseVectorIndexOptionsType", "namespace": "_types.mapping" }, - "specLocation": "_types/mapping/DenseVectorProperty.ts#L168-L213" + "specLocation": "_types/mapping/DenseVectorProperty.ts#L168-L222" }, { "kind": "interface", diff --git a/output/typescript/types.ts b/output/typescript/types.ts index 4e691b87d7..40b2d6cc4c 100644 --- a/output/typescript/types.ts +++ b/output/typescript/types.ts @@ -5697,7 +5697,7 @@ export interface MappingDenseVectorIndexOptionsRescoreVector { oversample: float } -export type MappingDenseVectorIndexOptionsType = 'bbq_flat' | 'bbq_hnsw' | 'flat' | 'hnsw' | 'int4_flat' | 'int4_hnsw' | 'int8_flat' | 'int8_hnsw' +export type MappingDenseVectorIndexOptionsType = 'bbq_flat' | 'bbq_hnsw' | 'bbq_disk' | 'flat' | 'hnsw' | 'int4_flat' | 'int4_hnsw' | 'int8_flat' | 'int8_hnsw' export interface MappingDenseVectorProperty extends MappingPropertyBase { type: 'dense_vector' diff --git a/specification/_types/mapping/DenseVectorProperty.ts b/specification/_types/mapping/DenseVectorProperty.ts index 5d0a66c6ce..bcd76ec339 100644 --- a/specification/_types/mapping/DenseVectorProperty.ts +++ b/specification/_types/mapping/DenseVectorProperty.ts @@ -160,7 +160,7 @@ export class DenseVectorIndexOptions { */ type: DenseVectorIndexOptionsType /** - * The rescore vector options. This is only applicable to `bbq_hnsw`, `int4_hnsw`, `int8_hnsw`, `bbq_flat`, `int4_flat`, and `int8_flat` index types. + * The rescore vector options. This is only applicable to `bbq_disk`, `bbq_hnsw`, `int4_hnsw`, `int8_hnsw`, `bbq_flat`, `int4_flat`, and `int8_flat` index types. */ rescore_vector?: DenseVectorIndexOptionsRescoreVector } @@ -178,6 +178,15 @@ export enum DenseVectorIndexOptionsType { * This can reduce the memory footprint by nearly 32x at the cost of some accuracy. */ bbq_hnsw, + /** + * This utilizes the DiskBBQ algorithm, a version of Inverted Vector File (IVF) that uses BBQ to quantize vectors. + * Only supports `element_type` of `float`. + * + * This not only significantly reduces memory usage, but also allows for indexing and searching of very large datasets that do not fit in memory. + * Unlike HNSW, this index type loses performance gracefully as the index grows larger than memory. + * @availability stack since=9.2.0 stability=stable + */ + bbq_disk, /** * This utilizes a brute-force search algorithm for exact kNN search. This supports all `element_type` values. */