Как получить доступ к административному интерфейсу экземпляра EmbeddedSolvServer?

В моем веб-приложении я запускаю org.apache.solr.client.solrj.embedded.EmbeddedSolrServer для целей отладки, я хотел бы получить доступ к интерфейсу администратора.

Вот как я создаю сервер:

new EmbeddedSolrServer(new CoreContainer.Initializer().initialize(), "");           

Есть ли способ открыть интерфейс администратора этого встроенного сервера?

http://localhost:<defaultport>/admin

Если да, то какой порт мне нужно использовать (какой порт по умолчанию)?

Есть ли еще параметр, который я использую для указания веб-пути для доступа к пользовательскому интерфейсу администратора?


person zsawyer    schedule 04.06.2013    source источник


Ответы (2)


Нет, нет. По крайней мере, не во время работы вашего приложения.

Встроенный сервер solr считывает и записывает индекс непосредственно в вашей файловой системе в каталоге установки solr. Чтобы получить доступ к консоли администратора, закройте приложение. В консоли перейдите к вашему /example в каталоге установки solr. Введите java -jar start.jar. Затем вы можете перейти к http://localhost:8983/solr, чтобы получить доступ к каталогу администратора.

Вы не можете запустить сервер solr и запускать приложение, которое обращается к тому же индексу через EmbeddedSolrServer, иначе вы получите исключение LockObtainFailedException. Solr допускает только одно чтение/запись для индекса за раз, и этот читатель/запись получает «блокировку» для доступа к индексу. Это предотвращает повреждение индекса из-за нескольких одновременных операций чтения/записи.

По этой причине я предпочитаю использовать HttpSolrServer вместо EmbeddedSolrServer даже для среды разработки.

См.: http://wiki.apache.org/solr/Solrj#EmbeddedSolrServer.

person Mike Nitchie    schedule 07.06.2013
comment
Мне нужно отладить в контексте моего приложения. Поэтому замена EmbeddedSolrServer на HttpSolrServer во время разработки (или, по крайней мере, во время сеанса отладки) теперь является моим предпочтительным методом. Спасибо за отличный и подробный ответ! - person zsawyer; 09.06.2013

Да, вы можете, просто используйте трюки с редектом

перенаправить URL, который вы хотите

http://localhost:/admin

чтобы решить URL-адрес администратора

http://localhost:8983/solr

person LF00    schedule 01.12.2016