首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lucene HNSW KNN向量搜索支持预滤波吗?

Lucene HNSW KNN向量搜索支持预滤波吗?
EN

Stack Overflow用户
提问于 2022-02-03 20:46:59
回答 1查看 55关注 0票数 0

Lucene最近在原有分支https://issues.apache.org/jira/browse/LUCENE-9004的基础上,为Lucene 9.0.0添加了HNSW近似最近邻搜索(ANN)。

Lucene支持预过滤吗?例如,假设我们希望对2020年之后创建的文档进行矢量搜索。是否可以在向量搜索的相同请求中筛选这些文档?或者我们必须在返回人工神经网络搜索结果后进行后过滤?

我注意到在query方法下有一个成员queryhttps://javadoc.io/doc/org.apache.lucene/lucene-core/latest/org/apache/lucene/util/hnsw/HnswGraph.html。那能用来过滤吗?

EN

回答 1

Stack Overflow用户

发布于 2022-02-04 06:29:14

据我所知,他们没有,我想这是在酝酿中,但我认为这将需要时间。您应该看看Pinecone,从我已经看到的情况来看,Pinecone的元数据过滤是非常先进的。

原因是由于预过滤,你的搜索范围受到限制,它过滤掉了HNSW图中的节点,因此你不再能够用这个图执行ANN搜索,它从过滤器中被“破坏”了。因此,搜索会恢复到精确的kNN搜索--比如搜索速度很慢。

后过滤可以是快速的,因为你能够维护图的结构和执行一个人工神经网络搜索,但然后你过滤的结果。所以,如果你说我想要前5名最相似的结果,你可以得到4,2,或者在最坏的情况下0的结果。

松果公司推出了一种名为“单级滤波”的方法,它能够保持准确性,比如预先过滤,并返回您所要求的匹配的确切数量,同时(通常)提供速度增长,就像后续过滤一样。所以你在这两个世界中都占了上风。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70978062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档