如何在MongoDB中有效地存储和查询原始JSON流?

时间:2011-11-22 19:10:12

标签: python mongodb twitter pymongo

我想在MongoDB中有效地存储原始JSON流(通过Twitter或NYTimes),以便稍后我可以使用Lucene或Hadoop索引数据(NYTimes文章或推文/用户名)。在Mongo中存储数据最聪明的方法是什么?我应该只管道JSON,还是有更好的东西?我只使用一台机器用于mongodb,有3个副本。

是否有一种高效(智能)的方式来编写查询或存储我的数据以更好地优化搜索查询?

1 个答案:

答案 0 :(得分:7)

  

是否有一种高效(智能)的方式来编写查询或存储我的数据以更好地优化搜索查询?

这完全取决于您需要进行哪种查询以及应用程序的使用模式。 将每条推文存储在包含以下内容的Mongo文档中非常简单:发送者,时间戳,文本等。 根据您需要进行的查询,您需要在这些字段上创建索引(更多信息:http://www.mongodb.org/display/DOCS/Indexes

对于全文搜索,您可以标记/解析/阻止推文的文本,并使用每条推文存储一个令牌数组,您可以将其编入索引以快速对其进行查询。 如果您需要更强大的全文搜索功能,您还可以使用Lucene索引它们并将objectId存储在每个lucene文档中 - 但这会带来基本上具有2个数据存储的复杂性

同样,如果不知道用例的细节,那么这里真的没有正确答案。