【发布时间】:2011-05-06 04:42:21
【问题描述】:
假设我搜索“宝贝”。 Sphinx 将抓取所有包含“婴儿”的文档,然后使用我自己的算法对其进行排序。 (扩展模式)。
问题是,它怎么能这么快排序?它如何抓取数百万条记录,然后在几毫秒内对它们进行排序?
【问题讨论】:
标签: algorithm search sorting lucene sphinx
假设我搜索“宝贝”。 Sphinx 将抓取所有包含“婴儿”的文档,然后使用我自己的算法对其进行排序。 (扩展模式)。
问题是,它怎么能这么快排序?它如何抓取数百万条记录,然后在几毫秒内对它们进行排序?
【问题讨论】:
标签: algorithm search sorting lucene sphinx
哦,你问的是魔法。 Sphinx(和 Lucene 以及许多其他搜索引擎)正在使用 inverted index。
基本上,每个文档都被切成标记;搜索索引包含从标记到称为the postings list 的文档的映射。处理查询包括查看查询词的发布列表和查找匹配文档。为了加快速度,令牌存储为整数列表。 compressing the index 可以提高效率。
【讨论】: