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

1 投票
1 回答
933 浏览
提问于 2025-04-17 06:51

我想把从Twitter或者纽约时报获取的原始JSON数据高效地存储到MongoDB里,这样我以后就可以用Lucene或者Hadoop来给这些数据(比如纽约时报的文章或者推文/用户名)建立索引。请问在MongoDB中存储数据的最佳方法是什么?我应该直接把JSON数据导入吗,还是有更好的方法?我现在只用一台机器来运行MongoDB,并且有3个副本集。

有没有什么高效的方法来写查询,或者存储我的数据,以便更好地优化搜索查询?

1 个回答

7

有没有什么聪明的方法来写查询,或者存储我的数据,以更好地优化搜索查询?

这完全取决于你需要进行什么样的查询,以及你的应用程序的使用模式是什么。
比如说,你可以很简单地把每条推文存储在一个Mongo文档里,里面包含:发送者、时间戳、文本等等。
根据你需要进行的查询,你可能需要在这些字段上创建索引(更多信息可以查看这个链接:http://www.mongodb.org/display/DOCS/Indexes)。

如果你需要进行全文搜索,可以对推文的文本进行分词、解析和词干提取,然后和每条推文一起存储一个包含这些词的数组,这样你就可以为这些词创建索引,从而加快查询速度。
如果你需要更强大的全文搜索功能,你还可以使用Lucene来建立索引,并在每个Lucene文档中存储对象ID,但这样就会增加复杂性,因为你实际上需要管理两个数据存储。

总之,在不知道具体使用情况的前提下,这里没有绝对正确的答案。

撰写回答