我花了很多时间研究NoSQL系统做一些听起来应该很常见的事情。我想存储JSON数据(或我猜的任何结构化文档),然后搜索任何标记/值对。
挑战在于我不提前知道将包含在数据中的顶级属性,所以我真的希望避免必须提前定义每个可能的索引。
例如,我可能有很多联系人,例如
名字:鲍勃 姓氏:史密斯 地址: ... 城市:昆西
某些数据集将具有其他特定于解决方案的属性,例如:
推特:@blah 性别:男性虽然其他人可能有:
companyname:一个工作的好地方 公司城市:波士顿 年就业人数:7
我希望能够搜索companycity = Boston AND city = Quincy获取一个数据集,city = Boston AND gender = male,而无需最初定义这些索引。
所以,尽管有一个相当人为的例子,对于这种类型的任意搜索,最好的nosql系统是什么?目前我所知道的是使用全文索引解决方案,如Lucene。除非我遗漏了一些东西,否则Cassandra,MongoDB,CouchDB都需要提前编写索引才能获得真正的性能。
一点额外信息:
每个数据集可能是100000条记录。搜索是互动的。
任何帮助和链接表示赞赏。如果您有实际解决方案的经验,这将是非常好的。
答案 0 :(得分:0)
ElasticSearch提供了我的问题的关键要求(感谢@ ryan1234的提示)。它通过简单的HTTP API为快速索引和查询数据提供支持。
基于几个月在几个项目中使用ElasticSearch的经验,我绝对是一个倡导者。