Как эффективно хранить и запрашивать необработанный поток JSON в MongoDB? - PullRequest
1 голос
/ 22 ноября 2011

Я хотел бы эффективно хранить необработанный поток JSON (через Twitter или NYTimes) в MongoDB, чтобы впоследствии я мог индексировать данные (статьи NYTimes или твиты / имена пользователей) с помощью Lucene или Hadoop.Какой самый умный способ хранения данных в Монго?Должен ли я просто трубу в JSON, или есть что-то лучше?Я использую только один компьютер для mongodb с тремя наборами реплик.

Существует ли эффективный (умный) способ написания запросов или хранения моих данных для лучшей оптимизации поисковых запросов?

1 Ответ

7 голосов
/ 22 ноября 2011

Существует ли эффективный (умный) способ написания запросов или хранения моих данных для лучшей оптимизации поисковых запросов?

Это полностью зависит от того, какие запросы вам нужны.сделать и какой будет модель использования вашего приложения.Было бы довольно просто хранить каждый твит в документе Mongo, содержащем: отправителя, метку времени, текст и т. Д. В зависимости от того, какие запросы вам нужно сделать, вам нужно будет создать индексы для этих полей (дополнительная информация: http://www.mongodb.org/display/DOCS/Indexes)

Для полнотекстового поиска вы можете токенизировать / анализировать / извлекать текст твитов и сохранять массив токенов с каждым твитом, который вы можете проиндексировать, чтобы быстро выполнять запросы к нему. Если вам нужны более мощные функции полнотекстового поискаВы также можете индексировать их с помощью Lucene и сохранять objectId в каждом документе lucene - но это представляет сложность, по сути, наличия двух хранилищ данных

Опять же, здесь действительно нет правильного ответа, не зная деталей варианта использования.

...