2011-11-22 73 views
1

我想在MongoDB中有效地存储原始JSON流(通过Twitter或NYTimes),以便我可以稍后使用Lucene或Hadoop将数据(NYTimes文章或Tweets /用户名)编入索引。在Mongo中存储数据的最明智的方式是什么?我应该只用JSON管道,还是有更好的?我只用一台机器做mongodb,有3个副本。如何在MongoDB中有效存储和查询原始JSON流?

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

+0

该示例使用PHP,但您可能会发现这很有用:http://learnmongo.com/posts/mongodb-php-twitter-part-1/ –

回答

7

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

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

对于全文搜索,您可以标记/解析/干扰推文的文本,并存储一系列标记,每条推文都可以通过索引快速查询。 如果您需要更强大的全文搜索功能,您还可以使用Lucene对它们进行索引并将objectId存储在每个lucene文档中 - 但是这引入了实质上具有2个数据存储库的复杂性

再次,这里确实没有正确的答案不知道用例的细节。

+0

“对于全文搜索,您可以标记/解析/推文的文本并存储一系列令牌,每条推文都可以通过索引进行快速查询。“这是一个非常好的建议,谢谢! – vgoklani