搜索引擎如何实现的条件过滤
都知道搜索时候的输入的关键词是通过分词以后利用的倒排索引找到的文档ID,然后按照权重排序,但是有些搜索还支持一些条件过滤,如果用关键词搜索出来的文档ID,然后逐个过滤文档的属性,那么当我搜索的关键词对应了很多文档ID(几乎全量)这个时候不就是性能低到不能用了么,即使通过文档ID来查找文档属性有类似于B-TREE这种索引也一样。典型的产品例如百度的图片搜索,输入关键字以后可以筛头像。难道百度对于太大的搜索结果给我做了截断。例如我搜一个 “啊”并且是头像的图片,然后百度只在”啊“这个倒排的前一万个相关度最高的图片里再筛选出有头像属性的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
就我目前所用的sphinx来说,他是支持属性过滤的,相信其他的搜索引擎也应该有的,这样相应的属性过滤就由搜索引擎来实现,得到的结果也就基本可以直接来用了,