瀏覽代碼

fix tidb metadata filter (#16237)

Jyong 1 月之前
父節點
當前提交
a8879057c0
共有 1 個文件被更改,包括 6 次插入12 次删除
  1. 6 12
      api/core/rag/datasource/vdb/tidb_on_qdrant/tidb_on_qdrant_vector.py

+ 6 - 12
api/core/rag/datasource/vdb/tidb_on_qdrant/tidb_on_qdrant_vector.py

@@ -328,16 +328,13 @@ class TidbOnQdrantVector(BaseVector):
         )
         document_ids_filter = kwargs.get("document_ids_filter")
         if document_ids_filter:
-            should_conditions = []
-            for document_id_filter in document_ids_filter:
-                should_conditions.append(
+            if filter.must:
+                filter.must.append(
                     models.FieldCondition(
                         key="metadata.document_id",
-                        match=models.MatchValue(value=document_id_filter),
+                        match=models.MatchAny(any=document_ids_filter),
                     )
                 )
-            if should_conditions:
-                filter.should = should_conditions  # type: ignore
         results = self._client.search(
             collection_name=self._collection_name,
             query_vector=query_vector,
@@ -382,16 +379,13 @@ class TidbOnQdrantVector(BaseVector):
         )
         document_ids_filter = kwargs.get("document_ids_filter")
         if document_ids_filter:
-            should_conditions = []
-            for document_id_filter in document_ids_filter:
-                should_conditions.append(
+            if scroll_filter.must:
+                scroll_filter.must.append(
                     models.FieldCondition(
                         key="metadata.document_id",
-                        match=models.MatchValue(value=document_id_filter),
+                        match=models.MatchAny(any=document_ids_filter),
                     )
                 )
-            if should_conditions:
-                scroll_filter.should = should_conditions  # type: ignore
         response = self._client.scroll(
             collection_name=self._collection_name,
             scroll_filter=scroll_filter,