Наиболее эффективная архитектура для сайта с использованием Cassandra и Solr? - PullRequest
4 голосов
/ 01 февраля 2011

Я разрабатываю веб-сайт, который будет использовать Cassandra для хранения базы данных и Solr для индексации и поиска некоторых данных, содержащихся в этой базе данных (я хочу, чтобы поиск выполнялся только для некоторых данных). Я намеревался использовать PHP для серверных сценариев, взаимодействия с базой данных Cassandra и предоставления динамического HTML-контента на основе содержимого базы данных.

Когда пользователь что-то фиксирует в базе данных, я предполагал, что PHP выдаст запись в Cassandra, и если бы это были данные, которые нужно было найти, эти же данные могли бы быть записаны в индекс Solr. Дело в том, что мне не обязательно нужны доступные для поиска данные, сразу же доступные в индексе Solr, и при этом я не хочу, чтобы процесс добавления их в индекс через PHP потреблял ценные ресурсы, особенно в часы пик трафика. Есть ли способ, чтобы асинхронные обновления индекса Solr происходили в фоновом режиме, передавая данные непосредственно из Cassandra? Возможно, может быть создана очередь данных для поиска, которая используется для обновления индекса Solr во время простоя каким-либо фоновым процессом?

Я новичок во всем этом, но я бы хотел, чтобы связь между Cassandra и Solr была изолирована от основных сценариев PHP. Не уверен, что Cassandra и Solr могут быть эффективно связаны с помощью Java, поскольку в PHP для создания веб-контента поддерживается только высокоуровневый доступ к Cassandra (для чтения / записи в базу данных) и Solr (для запроса данных для поиска). Я ценю любые предложения.

Ответы [ 2 ]

5 голосов
/ 01 февраля 2011

Вместо того, чтобы управлять Solr и Cassandra по отдельности, вы должны рассмотреть Solandra, бэкэнд Cassandra для Solr

Подробнее об этом здесь: http://github.com/tjake/Lucandra

0 голосов
/ 02 февраля 2011

У вас есть много вариантов.

Один простой способ - иметь запланированное задание, которое собирает все ваши обновления со времени последнего запуска задания и выполняет пакетную вставку в solr.

Или вы можете сделать свой пост на кассандре, а затем выпустить асинхронный пост для решения.как описано здесь: Как сделать асинхронный GET-запрос в PHP?

Поскольку вам не нужен поиск в реальном времени, вы также можете установить размер фиксации по умолчанию, который будет достаточно большим..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...