Solr согласованность в коде Python - PullRequest
1 голос
/ 01 марта 2012

У меня есть код Python, работающий на нескольких машинах-анализаторах, каждый из которых выбирает документы из solr (операции выбора) и изменяет данные в solr путем повторной отправки документов с обновленными полями из БД (в случае обновления / вставки).Но поскольку разные экземпляры solr на разных компьютерах имеют свои обновленные документы, это приводит к несогласованности данных на всех машинах.

Есть ли способ сохранить центральный репозиторий документов solr, который будет запрашиваться и обновляться различнымимашины, тем самым обеспечивая согласованность данных?

Ответы [ 2 ]

3 голосов
/ 01 марта 2012

Форумы Solr будут предоставлять несколько тем для Одновременного добавления / обновления Solr , что даст вам четкую картину.

Вы можете поддерживать один экземпляр Solr и иметь в нем несколько клиентов.
Solr не транзакционный, как СУБД, но он обрабатывает параллелизм.
Всякий раз, когда совершается коммит, поддерживается блокировка, чтобы другие не могли коммитить и ставились в очередь.
Коммит также может зафиксировать все ожидающие коммиты.

0 голосов
/ 01 марта 2012

Вы делаете это неправильно.

SOLR вполне может работать с одним главным сервером, который получает все обновления, и многими серверами реплики, которые обслуживают все поисковые запросы.Таким образом, все серверы идентичны, если у вас не слишком много реплик или пропускная способность сети не ограничена ни для одной из реплик.

У вас все равно будут процессы обновления, но они будут обновлять только ядро.на главном сервере.Серверы реплик получают свои обновления автоматически с помощью возможности реплики SOLR.

Начните с чтения вики-страницы SOLR по репликации .

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