Я запускаю экземпляр Solr из образа Docker. У меня 2 ядра.
После того, как я перезапустил контейнер, core.properties одного из ядер был удален, и ядро исчезло из пользовательского интерфейса администратора. После того, как я создал и добавил этот файл вручную, все стало так же, как и раньше. Затем я снова попытался перезапустить контейнер, и файл core.properties снова был удален, но на этот раз из другого ядра.
В чем может быть причина этого?
Обновлено:
Есть 2 ядра: main_core и swap_core. Я выполняю с ними множество операций, например: добавляю схему по умолчанию, проверяю схему, добавляю настраиваемые поля, добавляю данные и т. д. Также я пытался реализовать переиндексацию, но безуспешно. Но все работало +- как я и ожидал, пока я не перезагрузил Docker-контейнер. Структура контейнера выглядит следующим образом:
- solr
- Files
- var
- solr
- data
- main_core
- conf
- data
core.properties
- swap_core
- conf
- data
core.properties
После первой перезагрузки core.properties из main_core удалился. Я восстановил его вручную и еще раз перезагрузил контейнер. Затем core.properties из swap_core был удален.
Помимо этого, я получаю
org.apache.solr.common.SolrException: значение параметра «leaderUrl» не разрешено: URL-адрес не является ни активным узлом кластера, ни в настроен 'allowUrls'
ошибка.
Я не уверен, что код Python сильно поможет, тем более, что с Solr работает около 10-12 различных функций и поскольку до перезапуска Docker-контейнера все было в порядке. Я бы просто добавил, что использую библиотеку Pysolr Python.
import pysolr
solr = pysolr.Solr("http://localhost:8983/solr/main_core")
@EmidioNeto добавил дополнительную информацию. Я подозреваю, что это проблема не кода, а проблемы Докера. Там много кода Python, и до перезапуска контейнера все работало как положено.


РЕШЕНО: Оказалось, что мне пришлось изменить solr.xml
<str name = "allowUrls">${solr.allowUrls:}</str>
по тому пути:
<str name = "allowUrls">${solr.allowUrls:localhost:8983/solr}</str>
Даже переиндексация начала работать корректно.
Предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.