all_texts = ["Apples and oranges", "Cars and airplanes", "Pineapple", "Train", "Banana"]metadatas = [{"len": len(t)} for t in all_texts]store.add_texts(all_texts, metadatas=metadatas)
您可以传递一个字典(dict),其中键表示元数据字段,值指定过滤条件。此方法在键和相应值之间应用等式过滤器。当提供多个键值对时,它们使用逻辑 AND 操作组合。
基于 SQL 的过滤器
或者,您可以提供一个表示 SQL WHERE 子句的字符串来定义更复杂的过滤条件。这提供了更大的灵活性,支持 SQL 表达式,如比较运算符和逻辑运算符。了解更多关于 BigQuery 运算符 的信息。
# Dictionary-based Filters# This should only return "Banana" document.docs = store.similarity_search_by_vector(query_vector, filter={"len": 6})print(docs)
# SQL-based Filters# This should return "Banana", "Apples and oranges" and "Cars and airplanes" documents.docs = store.similarity_search_by_vector(query_vector, filter="len = 6 AND len > 17")print(docs)