File tree Expand file tree Collapse file tree 3 files changed +12
-6
lines changed
elasticsearch/helpers/vectorstore
test_elasticsearch/test_server/test_helpers_vectorstore Expand file tree Collapse file tree 3 files changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -302,15 +302,14 @@ async def _create_index_if_not_exists(self) -> None:
302
302
vector_field = self .vector_field ,
303
303
num_dimensions = self .num_dimensions ,
304
304
)
305
-
306
305
if self .metadata_mappings :
307
306
metadata = mappings ["properties" ].get ("metadata" , {"properties" : {}})
308
307
for key in self .metadata_mappings .keys ():
309
308
if key in metadata :
310
309
raise ValueError (f"metadata key { key } already exists in mappings" )
311
310
312
311
metadata = dict (** metadata ["properties" ], ** self .metadata_mappings )
313
- mappings ["properties" ] = { "metadata" : {"properties" : metadata } }
312
+ mappings ["properties" ][ "metadata" ] = {"properties" : metadata }
314
313
315
314
await self .retrieval_strategy .before_index_creation (
316
315
self .es_client , self .text_field , self .vector_field
Original file line number Diff line number Diff line change @@ -300,15 +300,14 @@ def _create_index_if_not_exists(self) -> None:
300
300
vector_field = self .vector_field ,
301
301
num_dimensions = self .num_dimensions ,
302
302
)
303
-
304
303
if self .metadata_mappings :
305
304
metadata = mappings ["properties" ].get ("metadata" , {"properties" : {}})
306
305
for key in self .metadata_mappings .keys ():
307
306
if key in metadata :
308
307
raise ValueError (f"metadata key { key } already exists in mappings" )
309
308
310
309
metadata = dict (** metadata ["properties" ], ** self .metadata_mappings )
311
- mappings ["properties" ] = { "metadata" : {"properties" : metadata } }
310
+ mappings ["properties" ][ "metadata" ] = {"properties" : metadata }
312
311
313
312
self .retrieval_strategy .before_index_creation (
314
313
self .es_client , self .text_field , self .vector_field
Original file line number Diff line number Diff line change @@ -896,18 +896,26 @@ def test_metadata_mapping(
896
896
}
897
897
store = VectorStore (
898
898
index_name = index_name ,
899
- retrieval_strategy = DenseVectorStrategy (),
899
+ retrieval_strategy = DenseVectorStrategy (distance = DistanceMetric . COSINE ),
900
900
embedding_service = FakeEmbeddings (),
901
+ num_dimensions = 10 ,
901
902
es_client = sync_client ,
902
903
metadata_mappings = test_mappings ,
903
904
)
904
905
905
906
texts = ["foo" , "foo" , "foo" ]
906
- metadatas = [{"page " : i } for i in range (len (texts ))]
907
+ metadatas = [{"my_field " : str ( i ) } for i in range (len (texts ))]
907
908
store .add_texts (texts = texts , metadatas = metadatas )
908
909
909
910
mapping_response = sync_client .indices .get_mapping (index = index_name )
910
911
mapping_properties = mapping_response [index_name ]["mappings" ]["properties" ]
912
+ assert mapping_properties ["vector_field" ] == {
913
+ "type" : "dense_vector" ,
914
+ "dims" : 10 ,
915
+ "index" : True ,
916
+ "similarity" : "cosine" ,
917
+ }
918
+
911
919
assert "metadata" in mapping_properties
912
920
for key , val in test_mappings .items ():
913
921
assert mapping_properties ["metadata" ]["properties" ][key ] == val
You can’t perform that action at this time.
0 commit comments