Как создать ядро solr с данными из существующего?
Solr 1.4 Enterprise Search Server рекомендует делать большие обновления на копии ядра и затем заменять его на основное ядро. Я выполняю следующие действия:
Проблема, с которой я столкнулась, - это то, что ядро, созданное на шаге 1, не содержит никаких данных. Если я собираюсь сделать полный индекс всего и кухонную раковину, это будет хорошо, но если я просто хочу обновить (большое) подмножество документов - это, очевидно, не сработает.
(я мог бы объединить ядра, но часть того, что я пытаюсь сделать, это избавиться от любых удаленных документов, не пытаясь составить их список.)
Есть ли какой-нибудь флаг для действия CREATE, которое мне не хватает? Страница Страница Solr Wiki для CoreAdmin немного редка.
Возможное решение: репликация
Кто-то из solr-пользователя предложил использовать репликацию. Чтобы использовать его в этом сценарии, мне (по моему мнению) потребуется выполнить следующие шаги:
- Создайте новое ядро PREP, основанное на конфигурации основного ядра
- Измените конфигурацию основного ядра как главного
- Измените конфигурацию ядра PREP как подчиненного
- Причина/ожидание синхронизации?
- измените конфигурацию ядра PREP, чтобы больше не быть подчиненным
- Выполните обновление индекса, а затем зафиксируйте/оптимизируйте его в ядре PREP.
- Сменить PREP и MAIN ядра
Простейшей установкой на основе репликации было бы настроить постоянное ядро PREP, которое всегда является ведущим. Главное ядро (на как можно большем количестве серверов) могло бы быть подчиненным ядром PREP. Индексация может происходить в ядре PREP как можно быстрее или медленнее.
Возможное решение: постоянное ядро PREP и двойное обновление
Еще одна идея, которую я придумал, заключалась в этом (также с участием постоянного ядра PREP):
- Выполните обновление индекса, а затем зафиксируйте/оптимизируйте его в ядре PREP.
- Сменить PREP и MAIN ядра.
- Повторите обновление индекса, а затем зафиксируйте/оптимизируйте то, что теперь является ядром PREP. Теперь он имеет те же данные, что и MAIN core (теоретически), и будет готов к следующей операции индекса.
Ответы
Ответ 1
Я создал эту идею операции клонирования, которая выполняет копирование индексов и данных конфигурации файловой системы, а затем CREATEs новую. Есть некоторые проблемы с блокировкой, и вы должны иметь доступ к файловой системе для индексов, но это действительно сработало. Это дает вам хорошую копию, которую вы можете обманывать с помощью конфигурационных файлов.
Чем больше я думаю об этом, вы можете СОЗДАТЬ новое ядро, а затем выполните следующее:
Настроить fetchindex на подчиненном устройстве из главной команды: http://slave_host:port/solr/replication?command=fetchindex
Можно передать дополнительный атрибут "masterUrl" или другие атрибуты, такие как "сжатие" (или любой другой параметр, указанный в теге), для однократной репликации от мастера. Это устраняет необходимость жесткого кодирования ведущего в подчиненном устройстве.
И залейте новый из производственного, затем примените свои обновления, а затем поменяйте обратно!