Как я создаю solr ядро с данными из существующего?

Поисковый сервер Solr 1.4 Предприятия рекомендует делать большие обновления на копии ядра и затем загрузить его для процессорного ядра. Я выполняю эти шаги:

  1. Создайте подготовительное ядро: http://localhost:8983/solr/admin/cores?action=CREATE&name=prep&instanceDir=main
  2. Выполните индексное обновление, затем фиксируйте/оптимизируйте на подготовительном ядре.
  3. Подкачайте основное и подготовительное ядро: http://localhost:8983/solr/admin/cores?action=SWAP&core=main&other=prep
  4. Разгрузите подготовительное ядро: http://localhost:8983/solr/admin/cores?action=UNLOAD&core=prep

Проблема, которую я имею, ядро, созданное на шаге 1, не имеет никаких данных в нем. Если бы я собираюсь сделать полный индекс всего и раковины, которая была бы прекрасна, но если я просто хочу обновить (большое) подмножество документов - это, очевидно, не собирается работать.

(Я мог объединить ядра, но часть того, что я пытаюсь сделать, избавляются от любых удаленных документов, не пытаясь войти в список их.)

Там некоторый флаг к Действию по созданию, которое я пропускаю? Страница Solr Wiki для CoreAdmin немного редка в деталях.

Возможное решение: репликация

Кто-то на solr-пользователе предложил использовать репликацию. Для использования это в этом сценарии было бы (к моему пониманию), требуют следующих шагов:

  1. Создайте новое ПОДГОТОВИТЕЛЬНОЕ ядро, базирующееся от конфигурации Процессорного ядра
  2. Измените конфигурацию Процессорного ядра, чтобы быть ведущим устройством
  3. Измените конфигурацию ПОДГОТОВИТЕЛЬНОГО ядра, чтобы быть ведомым устройством
  4. Вызывать/ожидать для синхронизации?
  5. измените конфигурацию ПОДГОТОВИТЕЛЬНОГО ядра, чтобы больше не быть ведомым устройством
  6. Выполните индексное обновление, затем фиксируйте/оптимизируйте на ПОДГОТОВИТЕЛЬНОМ ядре.
  7. Подкачка ПОДГОТОВИТЕЛЬНЫЕ и Процессорные ядра

Более простая основанная на репликации установка должна была бы настроить постоянное ПОДГОТОВИТЕЛЬНОЕ ядро, которое всегда является ведущим устройством. Процессорное ядро (на как много серверов по мере необходимости) могло затем быть ведомым устройством ПОДГОТОВИТЕЛЬНОГО ядра. Индексация могла произойти на ПОДГОТОВИТЕЛЬНОМ ядре настолько же быстро или столь же медленный по мере необходимости.

Возможное решение: Постоянное ПОДГОТОВИТЕЛЬНОЕ ядро и двойное обновление

Другая идея, которую я придумал, была этим (также вовлечение постоянного ПОДГОТОВИТЕЛЬНОГО ядра):

  1. Выполните индексное обновление, затем фиксируйте/оптимизируйте на ПОДГОТОВИТЕЛЬНОМ ядре.
  2. Подкачка ПОДГОТОВИТЕЛЬНЫЕ и Процессорные ядра.
  3. Повторно выполните индексное обновление, затем фиксируйте/оптимизируйте на том, что является теперь ПОДГОТОВИТЕЛЬНЫМ ядром. Это теперь имеет те же данные как Процессорное ядро (в теории) и будет вокруг, готово к следующей индексной операции.

13
задан stannius 24 March 2010 в 20:46
поделиться

1 ответ

Я создал идею операции клонирования, которая делает копию файловой системы индексов и данных конфигурации, а затем СОЗДАЕТ новую.Есть некоторые проблемы с блокировкой, и у вас должен быть доступ файловой системы к индексам, но это сработало. Это действительно дает вам хорошую копию, которую вы можете возиться с файлами конфигурации.

Чем больше я об этом думаю, тем больше можно СОЗДАТЬ новое ядро, а затем сделать следующее:

Принудительно вызвать fetchindex на подчиненном сервере из главной команды: http: // slave_host: port / solr / replication? Command = fetchindex Можно передать дополнительный атрибут 'masterUrl' или другие атрибуты, такие как 'сжатие' (или любой другой параметр, указанный в теге), чтобы выполнить одноразовую репликацию от мастера. Это устраняет необходимость жесткого кодирования ведущего устройства на ведомом.

И вставьте новый из производственного, затем примените свои обновления, а затем снова поменяйте местами!

3
ответ дан 2 December 2019 в 02:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: