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

发布于 2024-12-17 09:40:50 字数 222 浏览 0 评论 0原文

我想将原始 JSON 流(通过 Twitter 或《纽约时报》)有效地存储在 MongoDB 中,以便稍后可以使用 Lucene 或 Hadoop 索引数据(《纽约时报》文章或推文/用户名)。在 Mongo 中存储数据最明智的方式是什么?我应该直接输入 JSON,还是有更好的东西?我只使用一台机器作为 mongodb,有 3 个副本集。

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

I would like to store the raw JSON stream (either via Twitter or the NYTimes) efficiently in MongoDB, so that I can later index the data (NYTimes articles, or Tweets/usernames) with either Lucene or Hadoop. What's the smartest way of storing data in Mongo? Should I just pipe in the JSON, or is there something better? I am only using a single machine for mongodb, with 3 replica sets.

Is there an efficient (smart) way of writing queries, or storing my data to better-optimize the search-queries?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遗忘曾经 2024-12-24 09:40:50

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

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

对于全文搜索,您可以对推文的文本进行标记/解析/词干,并为每条推文存储一个标记数组,您可以对其进行索引以快速查询。
如果您需要更强大的全文搜索功能,您还可以使用 Lucene 对其进行索引,并将 objectId 存储在每个 lucene 文档中 - 但这引入了本质上拥有 2 个数据存储的复杂性。

同样,如果不了解详细信息,这里实际上没有正确的答案用例。

Is there an efficient (smart) way of writing queries, or storing my data to better-optimize the search-queries?

This totally depends on what kind of queries you need to make and what the usage pattern of your application will be.
It would be pretty simple to store each tweet in a Mongo Document containing: sender, timestamp, text, etc.
Depending on what queries you need to make, you will need to create indexes on these fields (more info: http://www.mongodb.org/display/DOCS/Indexes)

For full text search, you could tokenize/parse/stem the text of the tweets and store an array of tokens with each tweet which you can index to make queries on it fast.
If you need more powerful full text search features, you could also index them with Lucene and store the objectId in each lucene document - but this introduces the complexity of essentially having 2 data stores

Again, there's really no right answer here without knowing the details of the use case.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文