【发布时间】:2010-10-02 18:13:32
【问题描述】:
我将我的数据插入到 MongoDB 中,并且有 240 个这样的文件。我没有将所有内容都插入一个大集合中,而是考虑将文件作为一个集合单独插入。如果我对一个常用索引列进行大量查询,这是一个好主意吗?
如果是这样,我如何发起查询以查询数据库中的所有集合?
【问题讨论】:
我将我的数据插入到 MongoDB 中,并且有 240 个这样的文件。我没有将所有内容都插入一个大集合中,而是考虑将文件作为一个集合单独插入。如果我对一个常用索引列进行大量查询,这是一个好主意吗?
如果是这样,我如何发起查询以查询数据库中的所有集合?
【问题讨论】:
使用诸如 Solr 之类的应用程序服务器可以帮助您实现您想要的,还可以添加模糊匹配、同义词、语音匹配、拼写错误等。
Solor 建立在 Lucene 之上。它的文档在这里:
http://lucene.apache.org/solr/
学习曲线有点陡峭,但您可以使用其大部分默认设置获得相当好的可搜索性,让您构建架构并索引数据以开始使用。
【讨论】:
我认为您正在寻找的答案确实在您的另一个问题上:Is there any multicore exploiting NoSQL system?
无法查询 Mongo 中的所有集合。这样做没有多大意义。 MongoDB 的优势在于策略性地将数据非规范化为集合。提供对所有集合进行查询的操作与战术非规范化的概念完全背道而驰。
理论上,您可以只运行 240 个查询。但更实际地,您可能最终会“分区”您的数据,以便您只需要查询一些集合。此时,您最终回到了我上面提供的链接,这表明分片您的数据可能是这里的答案。
【讨论】: