У меня проблемы с запуском EmbeddedSolrServer
.JavaDoc для CoreContainer
является по меньшей мере редким.Я посмотрел на «MergeIndexesEmbeddedTest» и мой код, похоже, должен работать.(Это проект Maven) У меня есть и «Schema.xml», и «solr.xml» в корне папки src/main/resources
.Я могу создать экземпляр сервера, но когда я пытаюсь добавить SolrInputDocument
к серверу, я получаю:
org.apache.solr.common.SolrException: 'No such core: butterfly'
at org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:104)
at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:105)
at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:64)
Мой код, который устанавливает сервер:
final File solrConfigXml = new File( "C:/code/butterfly/src/main/resources/solr.xml" );
final String solrHome = "C:/code/butterfly/src/main/resources/";
CoreContainer coreContainer;
try{
coreContainer = new CoreContainer( solrHome, solrConfigXml );
}catch( Exception e ){
e.printStackTrace( System.err );
throw new RuntimeException( e );
}
solrServer = new EmbeddedSolrServer( coreContainer, "butterfly" );
и мой solr.xml
файл:
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="false">
<cores adminPath="/admin/cores" defaultCoreName="butterfly1">
<core name="butterfly" instanceDir="." />
</cores>
</solr>
Я не опубликовал свой Schema.xml
файл, так как это всего лишь сокращенная версия примера с другими именами полей.Я использую абсолютный путь к файлам только потому, что мне было проще начать.