Сервер корпоративного поиска Solr 1.4 рекомендует делать большие обновления для копии ядра, а затем заменять ее для основного ядра.Я выполняю следующие действия:
- Создание подготовительного ядра: http://localhost:8983/solr/admin/cores?action=CREATE&name=prep&instanceDir=main
- Выполнение обновления индекса, затем принятие / оптимизация на подготовительном ядре.
- Замена основного и подготовительногоcore: http://localhost:8983/solr/admin/cores?action=SWAP&core=main&other=prep
- Выгрузить подготовительное ядро: http://localhost:8983/solr/admin/cores?action=UNLOAD&core=prep
Проблема, с которой я столкнулся, состоит в том, что ядро, созданное на шаге 1, не содержит никаких данных.Если я собираюсь сделать полный индекс всего и кухонной раковины, это было бы хорошо, но если я просто хочу обновить (большое) подмножество документов - это явно не сработает.
(Я мог бы объединить ядра, но часть того, что я пытаюсь сделать, это избавиться от любых удаленных документов, не пытаясь составить их список.)
Есть ли какой-то флаг для действия CREATE, которое япропал?Страница Solr Wiki для CoreAdmin немного разбросана по деталям.
Возможное решение: репликация
Кто-то из пользователей solr предложил использовать репликацию.Чтобы использовать его в этом сценарии (на мой взгляд) потребуются следующие шаги:
- Создать новое ядро PREP на основе конфигурации основного ядра
- Изменить конфигурациюГЛАВНОЕ ядро должно быть ведущим
- Изменить конфигурацию ядра PREP, чтобы оно было ведомым
- Причина / ждать синхронизации?
- изменить конфигурацию ядра PREP набольше не будет ведомым
- Выполнить обновление индекса, затем зафиксировать / оптимизировать на ядре PREP.
- Поменять ядра PREP и MAIN
Более простая установка на основе репликации будетнастроить постоянное ядро PREP, которое всегда является основным.Основное ядро (на любом количестве серверов) может быть подчиненным ядром PREP.Индексирование может происходить на ядре PREP так быстро или настолько медленно, насколько это необходимо.
Возможное решение: постоянное ядро PREP и двойное обновление
Еще одна идея, с которой я пришел, - это (также с участием постоянногоЯдро PREP):
- Выполните обновление индекса, затем зафиксируйте / оптимизируйте ядро PREP.
- Поменяйте местами ядра PREP и MAIN.
- Повторно выполните обновление индекса, затемзафиксировать / оптимизировать то, что сейчас является ядром PREP.Теперь он имеет те же данные, что и ядро MAIN (теоретически), и будет готов к следующей операции индексации.