在NoSQL数据库中加入

时间:2011-12-20 12:13:50

标签: mongodb solr nosql

我遇到了Apache Solr的文档结构问题(但是,我想这个问题对于其他NoSQL引擎来说很简单和常见)。我有一个应该包含大量用户引用的文档(例如其中包含数十亿个字段)。在RDBMS中,我使用2个具有一对多关系的简单表。但是NoSQL(特别是Solr)是如何实现的呢?具有数百个字段(多值)的文档是否会变得过于沉重? Solr不支持字段级别的文档更新。它应该作为一个整体更新,这太昂贵了;(

3 个答案:

答案 0 :(得分:2)

我不了解Solr,但MongoDB确实没有连接。您可以在其父实体中嵌入相关数据(User对象嵌入用户角色是很自然的。)

但是,如果由于此嵌入文档可能超出其限制(目前每个文档16M),那么您别无选择,只能将此相关数据存储在单独的文档中(作为单个文档或分组为多个文档批处理)

如果您将数据与其主实体分开存储,那么,当然,您必须执行多个查询才能获取所有数据。不确定Solr会怎么样。

MongoDB支持文档的就地部分更新。

答案 1 :(得分:1)

Solr 4.0支持一种连接语法。

http://wiki.apache.org/solr/Join

答案 2 :(得分:0)

我不确定solr,但是playOrm有助于连接但是它位于表的分区(不是整个表)。因此,如果按月或帐户进行分区,则只需抓取该分区并使用普通SQL进行查询即可。不确定这对你有什么帮助。