【发布时间】:2012-03-17 16:44:22
【问题描述】:
请原谅这个问题的潜在问题 - 仍然试图让我的头脑了解这些非关系型 NoSQL 的东西。
ElasicSearch 的性能和简单性给我留下了深刻的印象,但在我深入研究实现之前,我有一个映射(边缘 NoSQL 理论)问题要回答。
让我们继续使用 ElasticSearch 在其文档中的 Twitter 示例。
基本上,我们知道一条推文属于一个用户,而一个用户有很多条推文。 对象看起来像这样:
user = {'screen_name':'d2kagw', 'id_str':'1234567890', 'favourites_count':'15', ...}
tweet = {'message':'lorem lipsum...', 'user_id_str':'1234567890', ...}
我想知道的是,推文对象可以引用用户对象吗? 因为我希望能够编写如下查询:
{'query': {
'term':{'message':'lipsum'},
'range':{'user.favourites_count':{'from':10, 'to':30'}}
}}
我想返回与用户对象匹配的推文作为响应的一部分(而不是稍后延迟加载它们)。
我是不是要求太多了?
如果我想以这种方式查询数据,是否应该将所有用户数据放入推文对象中?
在我的实现中(不使用 twitter,这只是一个优雅的示例)由于我必须以各种方式查询数据,因此我需要将两个数据集作为不同的索引,所以我不确定我是否可以使用对象类型并具有我需要的索引结构。
提前感谢您的帮助。
【问题讨论】:
标签: lucene nosql elasticsearch