Sphinx 的排序速度为何如此之快?

发布于 2024-10-01 03:52:54 字数 119 浏览 3 评论 0 原文

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

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

Let's say I search for "baby". Sphinx will grab all the documents that have "baby" in it, and then sort it using my own algorithm. (EXTENDED mode).

The question is, how can it sort so fast? How does it grab millions of records and then sort them within milliseconds?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

两相知 2024-10-08 03:52:55

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

基本上,每个文档都被切成令牌;搜索索引包含从标记到名为 帖子列表。处理查询包括检查查询词的倒排列表并定位匹配的文档。为了加快速度,标记被存储为整数列表。通过压缩索引可以提高效率

Oh, you're asking about the magic. Sphinx (and Lucene, and many other search engines) are using an inverted index.

Basically, every document is chopped into tokens; The search index consists of a mapping from tokens to documents called the postings list. Processing a query includes going over the postings lists of the query terms and locating matching documents. To make this faster, the tokens are stored as a list of integers. This can be made even more efficient by compressing the index.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文