我花了很多时间研究 NoSQL 系统来做一些听起来应该很常见的事情。我想存储 JSON 数据(或我猜的任何结构化文档),然后搜索任何标签/值对。
挑战在于我不提前知道将包含在数据中的顶级属性,所以我真的想避免必须提前定义每个可能的索引。
例如,我可能有很多联系人,例如
名:鲍勃 姓:史密斯 地址:... 城市:昆西
一些数据集将具有额外的解决方案特定属性,例如:
推特:@blah 性别:男
而其他人可能有:
公司名称:工作的好地方公司城市:波士顿工作年限:7
我希望能够搜索 companycity = Boston AND city = Quincy 以获得一个数据集和 city = Boston AND gender = male,而无需最初定义这些索引。
那么,尽管有一个相当人为的例子,对于这种类型的任意搜索,最好的 nosql 系统是什么?目前我所知道的只是使用全文索引解决方案,例如 Lucene。除非我遗漏了什么,否则 Cassandra、MongoDB、CouchDB 都需要提前编写索引才能获得真正的性能。
一些额外的信息:
每个数据集可能有 100000 条记录。搜索是交互式的。
任何帮助和链接表示赞赏。如果您有实际解决方案的经验,这样做会很棒。