algorithm - Sphinx 怎么能这么快地进行排序?

标签 algorithm search sorting lucene sphinx

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

问题来了,怎么排序这么快?它如何抓取数百万条记录,然后在几毫秒内对它们进行排序?

最佳答案

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

基本上,每个文档都被分割成标记;搜索索引由标记到文档的映射组成,称为 the postings list .处理查询包括遍历查询项的发布列表和定位匹配文档。为了加快速度, token 存储为整数列表。这可以通过 compressing the index 变得更加高效.

关于algorithm - Sphinx 怎么能这么快地进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4116183/

相关文章:

java - 在没有明显访问节点的情况下对 LinkedList 进行排序?

javascript - Elasticsearch - 按名称过滤和排序,优先级异常(exception)

algorithm - 十进制转位(二进制)

java - 优化并找到这个不等式的计算

javascript - 是否需要全功能的语音搜索算法?

java - (Java) 递归重载遇到问题

javascript - javascript中的父子关系排序

java - 从不同文件夹中的所有文件中找出 100 个最大的数字

algorithm - 指数复杂度特定案例的 Big O

ios - 在 Swift 中为 UISearchController 链接数组