@@ -692,7 +692,7 @@ async def test_delete_validates_index_name(vector_index_client_async: PreviewVec
692692 assert response .error_code == MomentoErrorCode .INVALID_ARGUMENT_ERROR
693693
694694
695- async def test_delete_deletes_ids (
695+ async def test_delete_items_by_id (
696696 vector_index_client_async : PreviewVectorIndexClientAsync ,
697697 unique_vector_index_name_async : TUniqueVectorIndexNameAsync ,
698698) -> None :
@@ -705,10 +705,10 @@ async def test_delete_deletes_ids(
705705 upsert_response = await vector_index_client_async .upsert_item_batch (
706706 index_name ,
707707 items = [
708- Item (id = "test_item_1" , vector = [1.0 , 2.0 ]),
709- Item (id = "test_item_2" , vector = [3.0 , 4.0 ]),
710- Item (id = "test_item_3" , vector = [5.0 , 6.0 ]),
711- Item (id = "test_item_3 " , vector = [7.0 , 8.0 ]),
708+ Item (id = "test_item_1" , vector = [1.0 , 2.0 ], metadata = { "key" : "value1" } ),
709+ Item (id = "test_item_2" , vector = [3.0 , 4.0 ], metadata = { "key" : "value2" } ),
710+ Item (id = "test_item_3" , vector = [5.0 , 6.0 ], metadata = { "key" : "value3" } ),
711+ Item (id = "test_item_4 " , vector = [7.0 , 8.0 ], metadata = { "key" : "value4" } ),
712712 ],
713713 )
714714 assert isinstance (upsert_response , UpsertItemBatch .Success )
@@ -717,10 +717,11 @@ async def test_delete_deletes_ids(
717717
718718 search_response = await vector_index_client_async .search (index_name , query_vector = [1.0 , 2.0 ], top_k = 10 )
719719 assert isinstance (search_response , Search .Success )
720- assert len (search_response .hits ) == 3
720+ assert len (search_response .hits ) == 4
721721
722722 assert search_response .hits == [
723- SearchHit (id = "test_item_3" , score = 23.0 ),
723+ SearchHit (id = "test_item_4" , score = 23.0 ),
724+ SearchHit (id = "test_item_3" , score = 17.0 ),
724725 SearchHit (id = "test_item_2" , score = 11.0 ),
725726 SearchHit (id = "test_item_1" , score = 5.0 ),
726727 ]
@@ -734,13 +735,52 @@ async def test_delete_deletes_ids(
734735
735736 search_response = await vector_index_client_async .search (index_name , query_vector = [1.0 , 2.0 ], top_k = 10 )
736737 assert isinstance (search_response , Search .Success )
737- assert len (search_response .hits ) == 1
738+ assert len (search_response .hits ) == 2
738739
739740 assert search_response .hits == [
741+ SearchHit (id = "test_item_4" , score = 23.0 ),
740742 SearchHit (id = "test_item_2" , score = 11.0 ),
741743 ]
742744
743745
746+ async def test_delete_items_by_filter (
747+ vector_index_client_async : PreviewVectorIndexClientAsync ,
748+ unique_vector_index_name_async : TUniqueVectorIndexNameAsync ,
749+ ) -> None :
750+ index_name = unique_vector_index_name_async (vector_index_client_async )
751+ create_response = await vector_index_client_async .create_index (index_name , num_dimensions = 2 )
752+ assert isinstance (create_response , CreateIndex .Success )
753+
754+ items = [
755+ Item (id = "test_item_1" , vector = [1.0 , 1.0 ], metadata = {"key" : "value1" }),
756+ Item (id = "test_item_2" , vector = [3.0 , 4.0 ], metadata = {"key" : "value2" }),
757+ Item (id = "test_item_3" , vector = [5.0 , 6.0 ], metadata = {"key" : "value1" }),
758+ Item (id = "test_item_4" , vector = [7.0 , 8.0 ], metadata = {"key" : "value2" }),
759+ ]
760+ upsert_response = await vector_index_client_async .upsert_item_batch (
761+ index_name ,
762+ items = items ,
763+ )
764+ assert isinstance (upsert_response , UpsertItemBatch .Success )
765+
766+ await sleep_async (2 )
767+
768+ search_response = await vector_index_client_async .search (index_name , query_vector = [1.0 , 1.0 ], top_k = 10 )
769+ assert isinstance (search_response , Search .Success )
770+ assert len (search_response .hits ) == 4
771+
772+ delete_response = await vector_index_client_async .delete_item_batch (
773+ index_name , filter = filters .Equals ("key" , "value1" )
774+ )
775+ assert isinstance (delete_response , DeleteItemBatch .Success )
776+
777+ await sleep_async (2 )
778+
779+ search_response = await vector_index_client_async .search (index_name , query_vector = [1.0 , 1.0 ], top_k = 10 )
780+ assert isinstance (search_response , Search .Success )
781+ assert len (search_response .hits ) == 2
782+
783+
744784@pytest .mark .parametrize (
745785 [
746786 "get_item_method_name" ,
0 commit comments