Есть ли способ одновременно индексировать несколько ядер Solr?

Я разрабатываю приложение для индексации с помощью Solr. Наша текущая система имеет два действующих ядра и одновременно индексирует только одно ядро. Недавно стало очевидно, что нынешняя система индексации не будет работать в долгосрочной перспективе. Одно из активных ядер необходимо разделить на два новых ядра. У них будет некоторая перекрывающаяся информация, но разные схемы. Оба должны быть быстро обновлены всякий раз, когда новый проект загружается в базу данных.

Есть ли способ одновременного обновления нескольких ядер solr с помощью SolrJ?

Все ядра находятся в одном экземпляре solr.

Мы не используем SolrCloud.

Ядро, которое необходимо разделить, в настоящее время содержит ок. 2500000 документов.

Любая помощь приветствуется.


person ceh    schedule 06.09.2017    source источник
comment
что значит одновременно в данном случае? Наверняка вы могли бы одновременно запускать запросы на обновление ядер.   -  person Mysterion    schedule 06.09.2017
comment
Я хочу проиндексировать два ядра одновременно из одной базы данных или хотя бы одно сразу за другим. Текущая система запускается, подключается к solr, индексирует, отключается и завершает работу приложения. Это приводит к запуску всего приложения от начала до конца несколько раз для индексации каждого ядра. Я не понимаю, почему я не могу проиндексировать их все за один запуск приложения.   -  person ceh    schedule 07.09.2017


Ответы (2)


Поскольку вы индексируете много документов на одном ядре, я бы предположил, что процесс индексирования занимает довольно много времени и использует все системные ресурсы (если настроено правильно). В этом случае параллельное индексирование одного и того же экземпляра не поможет, поскольку ваши несколько потоков будут использовать одни и те же ресурсы.

Но что вы можете сделать, так это проиндексировать другое ядро ​​в другом экземпляре, а затем выполнить репликацию каждого ядра отдельно.

person Zilvinas    schedule 06.09.2017
comment
На самом деле индексирование всего ядра занимает около 10 минут и не использует все ресурсы. Но документы настолько вложены друг в друга, что у серверной части нашего веб-интерфейса возникают проблемы с запросом более глубоких данных — решенное решение состоит в том, чтобы разделить его на два ядра. Индексация одного проекта потребует как можно более быстрого обновления обоих новых ядер, отсюда и вопрос. - person ceh; 07.09.2017
comment
Он должен использовать все ресурсы, если настроен правильно :) В противном случае вы неэффективно используете свои ресурсы. - person Zilvinas; 07.09.2017

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

person Jeeppp    schedule 07.09.2017