大表中的NoSQL关键字搜索

发布于 2024-12-29 11:20:21 字数 357 浏览 1 评论 0原文

我很好奇 NoSQL 解决方案如何支持分布在多个服务器的非常非常大的表中的关键字搜索?

我所说的关键字搜索是指像 Google 那样的数据库,拥有大量文档,并且能够非常快速地回答诸如查找“纽约的酒店”之类的问题。

我在 NoMysql 解决方案中看到支持 OR 操作的非常简单的解决方案(例如,查询:“A 或 B 或 C”) - 只需使用另一个非常大的分布式表,该表将保存从任何单词到其所在文档的倒排索引在这种情况下,给定“A或B或C”,我们可以直接转到索引表中的“A”或“B”或“C”条目并收集所有文档ID。然后,一旦我们有了 id 就可以自行获取文档。

但是如何设计一个支持高效 AND 运算的数据库(例如,如果我需要搜索“A 和 B 和 C”)?

I'm curios how can a NoSQL solution support keyword search in a very very big table distributed accross multiple servers?

By keyword search I mean a DB like the one Google has, with huge amount of documents, and with the ability to answer such question like find "hotels in New York" very fast indeed.

I see very simple solution to support OR operation in NoMysql solution (for example, queries like: "A or B or C") - just to use another very big distributed table that will hold an inverted index from any word to the document it is found in. In such case, given "A or B or C", we can just go directly to "A" or "B" or "C" entries in the index table and collect all the documents-ids. Then, once we have the ids to to fetch the documents themselfes.

But how to design a DB that will support efficient AND operations (for example, if I need to search for "A and B and C")?

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

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

发布评论

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

评论(1

送你一个梦 2025-01-05 11:20:21

我建议您查看 elasticsearchsolr

I'd recommend you to take a look at elasticsearch and solr.

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