假设我搜索“baby”。 Sphinx 将抓取所有包含“baby”的文档,然后使用我自己的算法对其进行排序。 (扩展模式)。
问题来了,怎么排序这么快?它如何抓取数百万条记录,然后在几毫秒内对它们进行排序?
最佳答案
哦,你问的是魔法。 Sphinx(和 Lucene,以及许多其他搜索引擎)正在使用 inverted index .
基本上,每个文档都被分割成标记;搜索索引由标记到文档的映射组成,称为 the postings list .处理查询包括遍历查询项的发布列表和定位匹配文档。为了加快速度, token 存储为整数列表。这可以通过 compressing the index 变得更加高效.
关于algorithm - Sphinx 怎么能这么快地进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4116183/