Синхронизация Lucene.net индексирует через несколько серверов приложений

Я нигде не нашел дубликатов и попытался перезапустить затмение, пересобрать проект. Я получал ошибку только для одной библиотеки. Поэтому я просто попытался переименовать файл jar с ksoap2-android-assembly-2.5.8-jar-with-dependencies.jar на ksoap2-2.5.8.jar

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

14
задан axel_c 3 June 2009 в 11:09
поделиться

3 ответа

Кажется, что лучшим решением было бы индексировать документы на обоих серверах в их собственную копию индекса.

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

7
ответ дан 1 December 2019 в 15:02
поделиться

+1 за ответ Шона Карпентера. Индексирование на обоих серверах кажется наиболее разумным и безопасным выбором.

Если документы, которые вы индексируете, сложны (Word / PDF и их сортировки), вы можете выполнить некоторую предварительную обработку на одном сервере, а затем передать ее на серверы индексирования , чтобы сэкономить время обработки.

Решение, которое я использовал ранее, включает создание блока индекса на одном сервере, затем rsync его передачу на серверы поиска и объединение блока в каждый индекс, используя IndexWriter.AddIndexesNoOptimize . Вы можете создавать новый чанк каждые 5 минут или всякий раз, когда он достигает определенного размера. Если вам не нужны абсолютно свежие индексы, это может быть решением для вас.

1
ответ дан 1 December 2019 в 15:02
поделиться

в мире Java мы решили эту проблему, поместив MQ перед индексом (индексами). Вставка была завершена только тогда, когда bean-компонент, извлеченный из очереди, был успешным, в противном случае он просто откатил любое действие, которое он предпринял, пометил в документе как ожидающий, и он был повторен позже

1
ответ дан 1 December 2019 в 15:02
поделиться