我遇到了Apache Solr的文档结构问题(但是,我想这个问题对于其他NoSQL引擎来说很简单和常见)。我有一个应该包含大量用户引用的文档(例如其中包含数十亿个字段)。在RDBMS中,我使用2个具有一对多关系的简单表。但是NoSQL(特别是Solr)是如何实现的呢?具有数百个字段(多值)的文档是否会变得过于沉重? Solr不支持字段级别的文档更新。它应该作为一个整体更新,这太昂贵了;(
答案 0 :(得分:2)
我不了解Solr,但MongoDB确实没有连接。您可以在其父实体中嵌入相关数据(User
对象嵌入用户角色是很自然的。)
但是,如果由于此嵌入文档可能超出其限制(目前每个文档16M),那么您别无选择,只能将此相关数据存储在单独的文档中(作为单个文档或分组为多个文档批处理)
如果您将数据与其主实体分开存储,那么,当然,您必须执行多个查询才能获取所有数据。不确定Solr会怎么样。
MongoDB支持文档的就地部分更新。
答案 1 :(得分:1)
Solr 4.0支持一种连接语法。
答案 2 :(得分:0)
我不确定solr,但是playOrm有助于连接但是它位于表的分区(不是整个表)。因此,如果按月或帐户进行分区,则只需抓取该分区并使用普通SQL进行查询即可。不确定这对你有什么帮助。