2013-07-25 4 views
6

Я пытаюсь настроить многоядерный сервер solr для нашего веб-приложения, но у меня возникли проблемы с созданием нового ядра через службу coreadmin.Solr (4.4+) solrconfig.xml местоположение при создании ядер

Я использую Solr-4,4, потому что 4,3 столкнулся с проблемами сохраняющихся ядер в solr.xml (каталогу_данный не сохранились) Так что я использую новую Solr.xml конфигурацию 4.4 and beyond

Моего solr.xml в настоящее время выглядит следующим образом:

<solr> 
    <str name="coreRootDirectory">default-instance/cores/</str> 
</solr> 

solrconfig.xml расположен в (solrhome) /default-instance/conf/solrconfig.xml

при попытке создать ядро ​​с URL

http:/example.org/solr/admin/cores?action=CREATE&name=test-name&schema=schema-test.xml&loadOnStartup=false 

дает мне ошибку:

Error CREATEing SolrCore 'test-name': Unable to create core: test-name Caused by: Can't find resource 'solrconfig.xml' in classpath or 'default-instance/cores/test-name/conf/', cwd=/var/lib/tomcat7

Следующая, кажется, работает:

http:/example.org/solr/admin/cores?action=CREATE&name=test-name&schema=schema-test.xml&loadOnStartup=false&config=/absolute/file/path/to/solrconfig.xml 

Проблема заключается в это, кажется, только работать с абсолютным путем (или, возможно, относительный путь от/var/lib/tomcat7), который не является работоспособным решением.

Что я ищу - это способ разместить файл solrconfig.xml, чтобы его можно было использовать для создания новых ядер с помощью этой конфигурации (или способом создания этих ядер с текущим местоположением).

Более или менее то же самое будет необходимо для схем

ответ

2

У меня была та же проблема: solrconfig.xml не был в пути к классам. Я решил это, скопировав шаблоны конфигурационных файлов в путь к классам.

Итак, я просмотрел http://localhost:8983/solr/#/~java-properties, чтобы увидеть определение пути к solrs, а затем скопировал шаблон solrconfig.xml и schema.xml в папку C:\servers\solr-4.4.0\example\resources. Кроме того, я скопировал все данные о секундах ...

Это решение не полностью удовлетворяет, но оно работает. Добавление другого пути к classpath тоже должно работать. Я немного удивлен тем, что никакая стандартная конфигурация для новых ядер не может быть объявлена ​​в пределах solr.xml

4

В моем случае я воспользовался функцией Core Discovery в 4.4+, вместо того, чтобы создавать ядро ​​с помощью веб-интерфейса управления.

Это просто связано с копированием папки collection1 из каталога examples (который я обычно использую в качестве отправной точки).

Тогда я должен был убедиться, что в корне моего нового ядра есть core.properties с name=<new core name> внутри. Solr автоматически обнаружил новое ядро ​​и разрешил мне использовать его без каких-либо проблем.

Это предотвратило необходимость копирования solrconfig.xml и schema.xml в любом специальном месте.

+0

Возможно ли это сделать и на SolrCloud? или нам нужно добавить новое ядро ​​в другие узлы в облаке один за другим? – stephanruhl

+0

Не знаю. С тех пор я начал использовать ElasticSearch. – mydoghasworms

+0

@mydoghasworms Я использовал этот подход, и это сработало для меня .. спасибо. – Joe

2

Я рекомендую новые наборы Config для этого прецедента.

Если вы разместите свой schema.xml и solrconfig.XML (и другие конфигурационные файлы, такие как стоп-слова и т.д.) в директории $SOLR_HOME/configsets/myConfig/conf, вы можете создать новое ядро ​​с этой конфигурацией по телефону:

http://solr/admin/cores?action=CREATE&name=mycore&instanceDir=my_instance&configSet=myConfig

См https://cwiki.apache.org/confluence/display/solr/Config+Sets

Но они не доступны до Solr 4.8, см. https://issues.apache.org/jira/browse/SOLR-4478

10

Это сработало. Побежал в командной строке и был видимым в консоли администратора:

Solr создать -c (имя ядра или коллекции)

См README.txt для получения дополнительной информации.

+1

Это доступно только на Solr 5 – Evgeny

+0

Команда CLI тоже работала для меня. Благодаря! –

+1

, мы также должны знать, что команда должна выполняться как пользователь 'solr' – MhdSyrwan