Как спроектировать несколько параллельных импортов с использованием DIH в SOLR? - PullRequest
0 голосов
/ 14 марта 2020

Существует случай, когда внешнее приложение должно отправить в SOLR неизвестное количество различных запросов на индексирование. Фактически, эти запросы должны обрабатываться обработчиками импорта данных SOLR в соответствии с конфигурацией, представленной внутри запроса.

Существует ограничение SOLR - только один запрос на индексирование может быть обработан конкретным DIH. Поскольку число запросов может быть довольно большим и они поступают параллельно, нецелесообразно определять несколько спецификаций DIH в solrconfig. xml.

Как можно решить эту проблему?

Может быть, SOLR предоставляет некоторый API администратора для динамического создания спецификаций DIH из клиента?

1 Ответ

0 голосов
/ 14 марта 2020

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

Использование простой очереди (Redis, Celery, ApacheMQ, в зависимости от выбора языков и технологий), в которую внешнее приложение может отправлять запросы и которую ваши работники по индексированию выбирают из задач, будет масштабируемым и настраиваемым. Это позволит вам распределяться по нескольким индексным узлам по мере роста числа задач, а также позволит вам извлекать данные из нескольких источников по мере необходимости (и применять кэширование, если необходимо).

...