Sphinx如何快速排序?

TIM*_*MEX 3 sorting lucene algorithm search sphinx

假设我搜索"宝贝".Sphinx将抓取所有包含"baby"的文档,然后使用我自己的算法对其进行排序.(扩展模式).

问题是,它如何排序如此之快?它如何抓取数百万条记录,然后在几毫秒内对它们进行排序?

Yuv*_*l F 9

哦,你问的是魔法.Sphinx(和Lucene以及许多其他搜索引擎)正在使用倒排索引.

基本上,每个文件都被切成标记; 搜索索引包括从标记到称为发布列表的文档的映射.处理查询包括查看查询术语的发布列表和查找匹配文档.为了加快速度,令牌将存储为整数列表.通过压缩索引可以使这更有效.