Я хотел бы эффективно хранить сырой поток JSON (через Twitter или NYTimes) в MongoDB, чтобы позже индексировать данные (статьи NYTimes или твиты/имена пользователей) с помощью Lucene или Hadoop. Какой самый умный способ хранения данных в Монго? Должен ли я просто проехать в JSON, или там что-то лучше? Я использую только одну машину для mongodb, с тремя наборами реплик.
Существует ли эффективный (умный) способ написания запросов или хранения моих данных для лучшей оптимизации поисковых запросов?
Существует ли эффективный (умный) способ написания запросов или хранения моих данных для лучшей оптимизации поисковых запросов?
Это полностью зависит от того, какие запросы вам нужны, и какова будет модель использования вашего приложения. Было бы довольно просто сохранить каждый твит в Mongo Document, содержащий: отправитель, метку времени, текст и т.д. В зависимости от того, какие запросы вам нужно сделать, вам нужно будет создать индексы в этих полях (подробнее: http://www.mongodb.org/display/DOCS/Indexes)
Для полнотекстового поиска вы можете tokenize/parse/stem текст твитов и хранить массив токенов с каждым твитом, который вы можете индексировать, чтобы быстро делать запросы. Если вам нужны более мощные функции полнотекстового поиска, вы также можете индексировать их с помощью Lucene и хранить объект в каждом документе lucene, но это создает сложность, по существу, иметь 2 хранилища данных
Опять же, здесь нет правильного ответа, не зная подробностей использования.