|
@@ -2116,3 +2116,394 @@ setup:
|
|
|
- contains: {hits.hits: {_id: "2"}}
|
|
|
- contains: {hits.hits: {_id: "21"}}
|
|
|
- contains: {hits.hits: {_id: "31"}}
|
|
|
+
|
|
|
+---
|
|
|
+"Test update flat --> bbq_flat --> bbq_hnsw":
|
|
|
+ - requires:
|
|
|
+ capabilities:
|
|
|
+ - method: POST
|
|
|
+ path: /_search
|
|
|
+ capabilities: [ optimized_scalar_quantization_bbq ]
|
|
|
+ test_runner_features: capabilities
|
|
|
+ reason: "BBQ is required to test upgrading to bbq_flat and bbq_hnsw"
|
|
|
+ - requires:
|
|
|
+ reason: 'dense_vector updatable to bbq capability required'
|
|
|
+ test_runner_features: [ capabilities ]
|
|
|
+ capabilities:
|
|
|
+ - method: PUT
|
|
|
+ path : /_mapping
|
|
|
+ capabilities: [ dense_vector_updatable_bbq ]
|
|
|
+ - do:
|
|
|
+ indices.create:
|
|
|
+ index: vectors_64
|
|
|
+ body:
|
|
|
+ settings:
|
|
|
+ index:
|
|
|
+ number_of_shards: 1
|
|
|
+ mappings:
|
|
|
+ properties:
|
|
|
+ vector:
|
|
|
+ type: dense_vector
|
|
|
+ dims: 64
|
|
|
+ index: true
|
|
|
+ similarity: max_inner_product
|
|
|
+ index_options:
|
|
|
+ type: flat
|
|
|
+
|
|
|
+ - do:
|
|
|
+ index:
|
|
|
+ index: vectors_64
|
|
|
+ id: "1"
|
|
|
+ body:
|
|
|
+ vector: [0.077, 0.32 , -0.205, 0.63 , 0.032, 0.201, 0.167, -0.313,
|
|
|
+ 0.176, 0.531, -0.375, 0.334, -0.046, 0.078, -0.349, 0.272,
|
|
|
+ 0.307, -0.083, 0.504, 0.255, -0.404, 0.289, -0.226, -0.132,
|
|
|
+ -0.216, 0.49 , 0.039, 0.507, -0.307, 0.107, 0.09 , -0.265,
|
|
|
+ -0.285, 0.336, -0.272, 0.369, -0.282, 0.086, -0.132, 0.475,
|
|
|
+ -0.224, 0.203, 0.439, 0.064, 0.246, -0.396, 0.297, 0.242,
|
|
|
+ -0.028, 0.321, -0.022, -0.009, -0.001 , 0.031, -0.533, 0.45,
|
|
|
+ -0.683, 1.331, 0.194, -0.157, -0.1 , -0.279, -0.098, -0.176]
|
|
|
+ - do:
|
|
|
+ indices.flush:
|
|
|
+ index: vectors_64
|
|
|
+ - do:
|
|
|
+ indices.put_mapping:
|
|
|
+ index: vectors_64
|
|
|
+ body:
|
|
|
+ properties:
|
|
|
+ embedding:
|
|
|
+ type: dense_vector
|
|
|
+ dims: 64
|
|
|
+ index_options:
|
|
|
+ type: bbq_flat
|
|
|
+
|
|
|
+ - do:
|
|
|
+ indices.get_mapping:
|
|
|
+ index: vectors_64
|
|
|
+
|
|
|
+ - match: { vectors_64.mappings.properties.embedding.type: dense_vector }
|
|
|
+ - match: { vectors_64.mappings.properties.embedding.index_options.type: bbq_flat }
|
|
|
+
|
|
|
+ - do:
|
|
|
+ index:
|
|
|
+ index: vectors_64
|
|
|
+ id: "2"
|
|
|
+ body:
|
|
|
+ vector: [0.196, 0.514, 0.039, 0.555, -0.042, 0.242, 0.463, -0.348,
|
|
|
+ -0.08 , 0.442, -0.067, -0.05 , -0.001, 0.298, -0.377, 0.048,
|
|
|
+ 0.307, 0.159, 0.278, 0.119, -0.057, 0.333, -0.289, -0.438,
|
|
|
+ -0.014, 0.361, -0.169, 0.292, -0.229, 0.123, 0.031, -0.138,
|
|
|
+ -0.139, 0.315, -0.216, 0.322, -0.445, -0.059, 0.071, 0.429,
|
|
|
+ -0.602, -0.142, 0.11 , 0.192, 0.259, -0.241, 0.181, -0.166,
|
|
|
+ 0.082, 0.107, -0.05 , 0.155, 0.011, 0.161, -0.486, 0.569,
|
|
|
+ -0.489, 0.901, 0.208, 0.011, -0.209, -0.153, -0.27 , -0.013]
|
|
|
+ - do:
|
|
|
+ indices.flush:
|
|
|
+ index: vectors_64
|
|
|
+ - do:
|
|
|
+ indices.put_mapping:
|
|
|
+ index: vectors_64
|
|
|
+ body:
|
|
|
+ properties:
|
|
|
+ embedding:
|
|
|
+ type: dense_vector
|
|
|
+ dims: 64
|
|
|
+ index_options:
|
|
|
+ type: bbq_hnsw
|
|
|
+
|
|
|
+ - do:
|
|
|
+ indices.get_mapping:
|
|
|
+ index: vectors_64
|
|
|
+
|
|
|
+ - match: { vectors_64.mappings.properties.embedding.type: dense_vector }
|
|
|
+ - match: { vectors_64.mappings.properties.embedding.index_options.type: bbq_hnsw }
|
|
|
+
|
|
|
+ - do:
|
|
|
+ index:
|
|
|
+ index: vectors_64
|
|
|
+ id: "3"
|
|
|
+ body:
|
|
|
+ name: rabbit.jpg
|
|
|
+ vector: [0.139, 0.178, -0.117, 0.399, 0.014, -0.139, 0.347, -0.33 ,
|
|
|
+ 0.139, 0.34 , -0.052, -0.052, -0.249, 0.327, -0.288, 0.049,
|
|
|
+ 0.464, 0.338, 0.516, 0.247, -0.104, 0.259, -0.209, -0.246,
|
|
|
+ -0.11 , 0.323, 0.091, 0.442, -0.254, 0.195, -0.109, -0.058,
|
|
|
+ -0.279, 0.402, -0.107, 0.308, -0.273, 0.019, 0.082, 0.399,
|
|
|
+ -0.658, -0.03 , 0.276, 0.041, 0.187, -0.331, 0.165, 0.017,
|
|
|
+ 0.171, -0.203, -0.198, 0.115, -0.007, 0.337, -0.444, 0.615,
|
|
|
+ -0.683, 1.331, 0.194, -0.157, -0.1 , -0.279, -0.098, -0.176]
|
|
|
+ - do:
|
|
|
+ indices.flush:
|
|
|
+ index: vectors_64
|
|
|
+
|
|
|
+ - do:
|
|
|
+ indices.forcemerge:
|
|
|
+ index: vectors_64
|
|
|
+ max_num_segments: 1
|
|
|
+
|
|
|
+ - do:
|
|
|
+ indices.refresh: { }
|
|
|
+ - do:
|
|
|
+ search:
|
|
|
+ index: vectors_64
|
|
|
+ body:
|
|
|
+ knn:
|
|
|
+ field: vector
|
|
|
+ query_vector: [ 0.128, 0.067, -0.08 , 0.395, -0.11 , -0.259, 0.473, -0.393,
|
|
|
+ 0.292, 0.571, -0.491, 0.444, -0.288, 0.198, -0.343, 0.015,
|
|
|
+ 0.232, 0.088, 0.228, 0.151, -0.136, 0.236, -0.273, -0.259,
|
|
|
+ -0.217, 0.359, -0.207, 0.352, -0.142, 0.192, -0.061, -0.17 ,
|
|
|
+ -0.343, 0.189, -0.221, 0.32 , -0.301, -0.1 , 0.005, 0.232,
|
|
|
+ -0.344, 0.136, 0.252, 0.157, -0.13 , -0.244, 0.193, -0.034,
|
|
|
+ -0.12 , -0.193, -0.102, 0.252, -0.185, -0.167, -0.575, 0.582,
|
|
|
+ -0.426, 0.983, 0.212, 0.204, 0.03 , -0.276, -0.425, -0.158 ]
|
|
|
+ k: 3
|
|
|
+ num_candidates: 3
|
|
|
+
|
|
|
+ - match: { hits.hits.0._id: "1" }
|
|
|
+ - match: { hits.hits.1._id: "3" }
|
|
|
+ - match: { hits.hits.2._id: "2" }
|
|
|
+---
|
|
|
+"Test update int8_hnsw --> bbq_flat":
|
|
|
+ - requires:
|
|
|
+ capabilities:
|
|
|
+ - method: POST
|
|
|
+ path: /_search
|
|
|
+ capabilities: [ optimized_scalar_quantization_bbq ]
|
|
|
+ test_runner_features: capabilities
|
|
|
+ reason: "BBQ is required to test upgrading to bbq_flat and bbq_hnsw"
|
|
|
+ - requires:
|
|
|
+ reason: 'dense_vector updatable to bbq capability required'
|
|
|
+ test_runner_features: [ capabilities ]
|
|
|
+ capabilities:
|
|
|
+ - method: PUT
|
|
|
+ path : /_mapping
|
|
|
+ capabilities: [ dense_vector_updatable_bbq ]
|
|
|
+ - do:
|
|
|
+ indices.create:
|
|
|
+ index: vectors_64
|
|
|
+ body:
|
|
|
+ settings:
|
|
|
+ index:
|
|
|
+ number_of_shards: 1
|
|
|
+ mappings:
|
|
|
+ properties:
|
|
|
+ vector:
|
|
|
+ type: dense_vector
|
|
|
+ dims: 64
|
|
|
+ index: true
|
|
|
+ similarity: max_inner_product
|
|
|
+ index_options:
|
|
|
+ type: int8_hnsw
|
|
|
+
|
|
|
+ - do:
|
|
|
+ index:
|
|
|
+ index: vectors_64
|
|
|
+ id: "1"
|
|
|
+ body:
|
|
|
+ vector: [0.077, 0.32 , -0.205, 0.63 , 0.032, 0.201, 0.167, -0.313,
|
|
|
+ 0.176, 0.531, -0.375, 0.334, -0.046, 0.078, -0.349, 0.272,
|
|
|
+ 0.307, -0.083, 0.504, 0.255, -0.404, 0.289, -0.226, -0.132,
|
|
|
+ -0.216, 0.49 , 0.039, 0.507, -0.307, 0.107, 0.09 , -0.265,
|
|
|
+ -0.285, 0.336, -0.272, 0.369, -0.282, 0.086, -0.132, 0.475,
|
|
|
+ -0.224, 0.203, 0.439, 0.064, 0.246, -0.396, 0.297, 0.242,
|
|
|
+ -0.028, 0.321, -0.022, -0.009, -0.001 , 0.031, -0.533, 0.45,
|
|
|
+ -0.683, 1.331, 0.194, -0.157, -0.1 , -0.279, -0.098, -0.176]
|
|
|
+ - do:
|
|
|
+ indices.flush:
|
|
|
+ index: vectors_64
|
|
|
+ - do:
|
|
|
+ indices.put_mapping:
|
|
|
+ index: vectors_64
|
|
|
+ body:
|
|
|
+ properties:
|
|
|
+ embedding:
|
|
|
+ type: dense_vector
|
|
|
+ dims: 64
|
|
|
+ index_options:
|
|
|
+ type: bbq_flat
|
|
|
+
|
|
|
+ - do:
|
|
|
+ indices.get_mapping:
|
|
|
+ index: vectors_64
|
|
|
+
|
|
|
+ - match: { vectors_64.mappings.properties.embedding.type: dense_vector }
|
|
|
+ - match: { vectors_64.mappings.properties.embedding.index_options.type: bbq_flat }
|
|
|
+
|
|
|
+ - do:
|
|
|
+ index:
|
|
|
+ index: vectors_64
|
|
|
+ id: "2"
|
|
|
+ body:
|
|
|
+ vector: [0.196, 0.514, 0.039, 0.555, -0.042, 0.242, 0.463, -0.348,
|
|
|
+ -0.08 , 0.442, -0.067, -0.05 , -0.001, 0.298, -0.377, 0.048,
|
|
|
+ 0.307, 0.159, 0.278, 0.119, -0.057, 0.333, -0.289, -0.438,
|
|
|
+ -0.014, 0.361, -0.169, 0.292, -0.229, 0.123, 0.031, -0.138,
|
|
|
+ -0.139, 0.315, -0.216, 0.322, -0.445, -0.059, 0.071, 0.429,
|
|
|
+ -0.602, -0.142, 0.11 , 0.192, 0.259, -0.241, 0.181, -0.166,
|
|
|
+ 0.082, 0.107, -0.05 , 0.155, 0.011, 0.161, -0.486, 0.569,
|
|
|
+ -0.489, 0.901, 0.208, 0.011, -0.209, -0.153, -0.27 , -0.013]
|
|
|
+
|
|
|
+ - do:
|
|
|
+ index:
|
|
|
+ index: vectors_64
|
|
|
+ id: "3"
|
|
|
+ body:
|
|
|
+ name: rabbit.jpg
|
|
|
+ vector: [0.139, 0.178, -0.117, 0.399, 0.014, -0.139, 0.347, -0.33 ,
|
|
|
+ 0.139, 0.34 , -0.052, -0.052, -0.249, 0.327, -0.288, 0.049,
|
|
|
+ 0.464, 0.338, 0.516, 0.247, -0.104, 0.259, -0.209, -0.246,
|
|
|
+ -0.11 , 0.323, 0.091, 0.442, -0.254, 0.195, -0.109, -0.058,
|
|
|
+ -0.279, 0.402, -0.107, 0.308, -0.273, 0.019, 0.082, 0.399,
|
|
|
+ -0.658, -0.03 , 0.276, 0.041, 0.187, -0.331, 0.165, 0.017,
|
|
|
+ 0.171, -0.203, -0.198, 0.115, -0.007, 0.337, -0.444, 0.615,
|
|
|
+ -0.683, 1.331, 0.194, -0.157, -0.1 , -0.279, -0.098, -0.176]
|
|
|
+ - do:
|
|
|
+ indices.flush:
|
|
|
+ index: vectors_64
|
|
|
+
|
|
|
+ - do:
|
|
|
+ indices.refresh: { }
|
|
|
+ - do:
|
|
|
+ search:
|
|
|
+ index: vectors_64
|
|
|
+ body:
|
|
|
+ knn:
|
|
|
+ field: vector
|
|
|
+ query_vector: [ 0.128, 0.067, -0.08 , 0.395, -0.11 , -0.259, 0.473, -0.393,
|
|
|
+ 0.292, 0.571, -0.491, 0.444, -0.288, 0.198, -0.343, 0.015,
|
|
|
+ 0.232, 0.088, 0.228, 0.151, -0.136, 0.236, -0.273, -0.259,
|
|
|
+ -0.217, 0.359, -0.207, 0.352, -0.142, 0.192, -0.061, -0.17 ,
|
|
|
+ -0.343, 0.189, -0.221, 0.32 , -0.301, -0.1 , 0.005, 0.232,
|
|
|
+ -0.344, 0.136, 0.252, 0.157, -0.13 , -0.244, 0.193, -0.034,
|
|
|
+ -0.12 , -0.193, -0.102, 0.252, -0.185, -0.167, -0.575, 0.582,
|
|
|
+ -0.426, 0.983, 0.212, 0.204, 0.03 , -0.276, -0.425, -0.158 ]
|
|
|
+ k: 3
|
|
|
+ num_candidates: 3
|
|
|
+
|
|
|
+ - match: { hits.hits.0._id: "1" }
|
|
|
+ - match: { hits.hits.1._id: "3" }
|
|
|
+ - match: { hits.hits.2._id: "2" }
|
|
|
+---
|
|
|
+"Test update int8_hnsw --> bbq_hnsw":
|
|
|
+ - requires:
|
|
|
+ capabilities:
|
|
|
+ - method: POST
|
|
|
+ path: /_search
|
|
|
+ capabilities: [ optimized_scalar_quantization_bbq ]
|
|
|
+ test_runner_features: capabilities
|
|
|
+ reason: "BBQ is required to test upgrading to bbq_flat and bbq_hnsw"
|
|
|
+ - requires:
|
|
|
+ reason: 'dense_vector updatable to bbq capability required'
|
|
|
+ test_runner_features: [ capabilities ]
|
|
|
+ capabilities:
|
|
|
+ - method: PUT
|
|
|
+ path : /_mapping
|
|
|
+ capabilities: [ dense_vector_updatable_bbq ]
|
|
|
+ - do:
|
|
|
+ indices.create:
|
|
|
+ index: vectors_64
|
|
|
+ body:
|
|
|
+ settings:
|
|
|
+ index:
|
|
|
+ number_of_shards: 1
|
|
|
+ mappings:
|
|
|
+ properties:
|
|
|
+ vector:
|
|
|
+ type: dense_vector
|
|
|
+ dims: 64
|
|
|
+ index: true
|
|
|
+ similarity: max_inner_product
|
|
|
+ index_options:
|
|
|
+ type: int8_hnsw
|
|
|
+
|
|
|
+ - do:
|
|
|
+ index:
|
|
|
+ index: vectors_64
|
|
|
+ id: "1"
|
|
|
+ body:
|
|
|
+ vector: [0.077, 0.32 , -0.205, 0.63 , 0.032, 0.201, 0.167, -0.313,
|
|
|
+ 0.176, 0.531, -0.375, 0.334, -0.046, 0.078, -0.349, 0.272,
|
|
|
+ 0.307, -0.083, 0.504, 0.255, -0.404, 0.289, -0.226, -0.132,
|
|
|
+ -0.216, 0.49 , 0.039, 0.507, -0.307, 0.107, 0.09 , -0.265,
|
|
|
+ -0.285, 0.336, -0.272, 0.369, -0.282, 0.086, -0.132, 0.475,
|
|
|
+ -0.224, 0.203, 0.439, 0.064, 0.246, -0.396, 0.297, 0.242,
|
|
|
+ -0.028, 0.321, -0.022, -0.009, -0.001 , 0.031, -0.533, 0.45,
|
|
|
+ -0.683, 1.331, 0.194, -0.157, -0.1 , -0.279, -0.098, -0.176]
|
|
|
+ - do:
|
|
|
+ indices.flush:
|
|
|
+ index: vectors_64
|
|
|
+
|
|
|
+ - do:
|
|
|
+ index:
|
|
|
+ index: vectors_64
|
|
|
+ id: "2"
|
|
|
+ body:
|
|
|
+ vector: [0.196, 0.514, 0.039, 0.555, -0.042, 0.242, 0.463, -0.348,
|
|
|
+ -0.08 , 0.442, -0.067, -0.05 , -0.001, 0.298, -0.377, 0.048,
|
|
|
+ 0.307, 0.159, 0.278, 0.119, -0.057, 0.333, -0.289, -0.438,
|
|
|
+ -0.014, 0.361, -0.169, 0.292, -0.229, 0.123, 0.031, -0.138,
|
|
|
+ -0.139, 0.315, -0.216, 0.322, -0.445, -0.059, 0.071, 0.429,
|
|
|
+ -0.602, -0.142, 0.11 , 0.192, 0.259, -0.241, 0.181, -0.166,
|
|
|
+ 0.082, 0.107, -0.05 , 0.155, 0.011, 0.161, -0.486, 0.569,
|
|
|
+ -0.489, 0.901, 0.208, 0.011, -0.209, -0.153, -0.27 , -0.013]
|
|
|
+ - do:
|
|
|
+ indices.flush:
|
|
|
+ index: vectors_64
|
|
|
+ - do:
|
|
|
+ indices.put_mapping:
|
|
|
+ index: vectors_64
|
|
|
+ body:
|
|
|
+ properties:
|
|
|
+ embedding:
|
|
|
+ type: dense_vector
|
|
|
+ dims: 64
|
|
|
+ index_options:
|
|
|
+ type: bbq_hnsw
|
|
|
+
|
|
|
+ - do:
|
|
|
+ indices.get_mapping:
|
|
|
+ index: vectors_64
|
|
|
+
|
|
|
+ - match: { vectors_64.mappings.properties.embedding.type: dense_vector }
|
|
|
+ - match: { vectors_64.mappings.properties.embedding.index_options.type: bbq_hnsw }
|
|
|
+
|
|
|
+ - do:
|
|
|
+ index:
|
|
|
+ index: vectors_64
|
|
|
+ id: "3"
|
|
|
+ body:
|
|
|
+ name: rabbit.jpg
|
|
|
+ vector: [0.139, 0.178, -0.117, 0.399, 0.014, -0.139, 0.347, -0.33 ,
|
|
|
+ 0.139, 0.34 , -0.052, -0.052, -0.249, 0.327, -0.288, 0.049,
|
|
|
+ 0.464, 0.338, 0.516, 0.247, -0.104, 0.259, -0.209, -0.246,
|
|
|
+ -0.11 , 0.323, 0.091, 0.442, -0.254, 0.195, -0.109, -0.058,
|
|
|
+ -0.279, 0.402, -0.107, 0.308, -0.273, 0.019, 0.082, 0.399,
|
|
|
+ -0.658, -0.03 , 0.276, 0.041, 0.187, -0.331, 0.165, 0.017,
|
|
|
+ 0.171, -0.203, -0.198, 0.115, -0.007, 0.337, -0.444, 0.615,
|
|
|
+ -0.683, 1.331, 0.194, -0.157, -0.1 , -0.279, -0.098, -0.176]
|
|
|
+ - do:
|
|
|
+ indices.flush:
|
|
|
+ index: vectors_64
|
|
|
+ - do:
|
|
|
+ indices.refresh: { }
|
|
|
+ - do:
|
|
|
+ search:
|
|
|
+ index: vectors_64
|
|
|
+ body:
|
|
|
+ knn:
|
|
|
+ field: vector
|
|
|
+ query_vector: [ 0.128, 0.067, -0.08 , 0.395, -0.11 , -0.259, 0.473, -0.393,
|
|
|
+ 0.292, 0.571, -0.491, 0.444, -0.288, 0.198, -0.343, 0.015,
|
|
|
+ 0.232, 0.088, 0.228, 0.151, -0.136, 0.236, -0.273, -0.259,
|
|
|
+ -0.217, 0.359, -0.207, 0.352, -0.142, 0.192, -0.061, -0.17 ,
|
|
|
+ -0.343, 0.189, -0.221, 0.32 , -0.301, -0.1 , 0.005, 0.232,
|
|
|
+ -0.344, 0.136, 0.252, 0.157, -0.13 , -0.244, 0.193, -0.034,
|
|
|
+ -0.12 , -0.193, -0.102, 0.252, -0.185, -0.167, -0.575, 0.582,
|
|
|
+ -0.426, 0.983, 0.212, 0.204, 0.03 , -0.276, -0.425, -0.158 ]
|
|
|
+ k: 3
|
|
|
+ num_candidates: 3
|
|
|
+
|
|
|
+ - match: { hits.hits.0._id: "1" }
|
|
|
+ - match: { hits.hits.1._id: "3" }
|
|
|
+ - match: { hits.hits.2._id: "2" }
|