【发布时间】:2012-01-30 07:33:22
【问题描述】:
我很好奇 NoSQL 解决方案如何支持在分布在多个服务器的非常大的表中进行关键字搜索?
我所说的关键字搜索是指像谷歌这样的数据库,拥有大量文档,并且能够非常快速地回答诸如查找“纽约酒店”之类的问题。
我看到在 NoMysql 解决方案中支持 OR 操作的非常简单的解决方案(例如,查询,如:“A 或 B 或 C”) - 只是为了使用另一个非常大的分布式表,该表将保存从任何单词到找到它的文档。在这种情况下,给定“A 或 B 或 C”,我们可以直接转到索引表中的“A”或“B”或“C”条目并收集所有文档 ID。然后,一旦我们有了自己的 id 来获取文档。
但是如何设计一个支持高效 AND 操作的数据库(例如,如果我需要搜索“A and B and C”)?
【问题讨论】:
-
对于使用 mongodb 的“分布在多台服务器上的非常大的表”,您需要查看分片;请参阅此处的文档:mongodb.org/download/attachments/2097354/… 以及有关高效模式设计的 mongodb 文档:mongodb.org/display/DOCS/Schema+Design
标签: mongodb cassandra bigtable nosql