基于OpenSearch向量搜索的元数据预过滤相似性查询问题
解决预过滤page=1后执行相似性搜索的问题
你只需要修改filter中的page匹配值,把原来的6改成1,就能实现先过滤page=1的文档再执行相似性搜索的需求。
修改后的代码:
filter = {"bool": {"filter": {"term": {"page": 1}}}} resdocs = opensearch_vector_search.similarity_search("heterogenous individual growth", filter) resdocs
说明:
- 这里的
term查询是对元数据中的page字段做精确匹配,设置为1后,会先从向量数据库中筛选出所有metadata.page=1的文档 - 之后
similarity_search会仅在这些预过滤后的文档里,针对查询语句"heterogenous individual growth"执行相似性检索 - 对应你存入的文档,预过滤后会保留page=1的两个文档,再从中返回与查询词最相似的结果
内容的提问来源于stack exchange,提问作者Damodhar
相关产品推荐
相关产品推荐

