Как эффективно хранить и запрашивать необработанный поток JSON в MongoDB?

1

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

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

Теги:
twitter
pymongo

1 ответ

7
Лучший ответ

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

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

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

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

  • 0
    «Для полнотекстового поиска вы можете токенизировать / анализировать / создавать тексты твитов и хранить массив токенов с каждым твитом, который вы можете индексировать, чтобы быстро выполнять запросы». Это очень хорошее предложение, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню