Solr-Collection или Core не перезагружают schema.xml
Я использую Solar 4.6 и изменил что-то внутри schema.xml
, Для того, чтобы обновить schema.xml
внутри моего ядра я использовал zkcli
, Который работает нормально, и я могу видеть модифицированный schema.xml
внутри Solr Admin GUI под cloud\tree\config\foobar\schema.xml
,
Но после звонка
http://localhost:8983/solr/admin/collections?action=RELOAD&name=foobar
а такжеhttp://localhost:8983/solr/admin/cores?action=RELOAD&name=foobar
,
Старый schema.xml
был еще в ядре с именем foobar.
2 ответа
Вы должны перезагрузить свои ядра после предоставления ему новой схемы.
Замените имя на ядро в вашем запросе как:
/solr/admin/cores?action=RELOAD&**core**=yourcorename
Например
http://localhost:8983/solr/admin/cores?action=RELOAD&core=foobar
Ваш второй HTTP-запрос к Core API неверен. + Изменить name
в core
:
http://localhost:8983/solr/admin/cores?action=RELOAD&name=foobar
должно бытьhttp://localhost:8983/solr/admin/cores?action=RELOAD&core=foobar
,
http://archive.apache.org/dist/lucene/solr/ref-guide/apache-solr-ref-guide-4.6.pdf (стр. 277)
RELOAD
RELOAD
action загружает новое ядро из конфигурации существующего зарегистрированного ядра Solr. Пока новое ядро инициализируется, существующее будет продолжать обрабатывать запросы. Когда новое ядро Solr готово, оно вступает во владение, и старое ядро выгружается.
Это полезно, если вы внесли изменения в конфигурацию ядра Solr на диске, например добавили новые определения полей. Вызов RELOAD
действие позволяет применить новую конфигурацию без перезапуска веб-контейнера. Однако основной контейнер не сохраняет SolrCloudsolr.xml
параметры, такие как solr/@zkHost
а также solr/cores/@hostPort
, которые игнорируются.
http://localhost:8983/solr/admin/cores?action=RELOAD&core=core0
RELOAD
action принимает один параметр, core, который является именем ядра, подлежащего перезагрузке.
см. также https://cwiki.apache.org/confluence/display/solr/CoreAdmin+API