假设我搜索“宝贝”。 Sphinx将抓取所有包含“baby”的文档,然后使用我自己的算法对其进行排序。 (扩展模式)。
问题是,如何快速排序?它如何抓取数百万条记录,然后在几毫秒内对它们进行排序?
答案 0 :(得分:9)
哦,你问的是魔法。 Sphinx(和Lucene以及许多其他搜索引擎)正在使用inverted index。
基本上,每个文件都被切成代币;搜索索引包含从标记到名为the postings list的文档的映射。处理查询包括查看查询术语的发布列表和查找匹配文档。为了加快速度,令牌将存储为整数列表。 compressing the index可以使效率更高。