如何设置EmbeddedSolrServer实例?

Sle*_*led 5 java lucene solr

我无法EmbeddedSolrServer运行.JavaDoc for CoreContainer稀疏至少可以说.我看过"MergeIndexesEmbeddedTest",我的代码看起来应该可行.(这是一个Maven项目)我在src/main/resources文件夹的根目录中有"Schema.xml"和"solr.xml" .我可以实例化服务器,但当我尝试添加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)
Run Code Online (Sandbox Code Playgroud)

我设置服务器的代码是:

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" );
Run Code Online (Sandbox Code Playgroud)

我的solr.xml文件是:

<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="false">
    <cores adminPath="/admin/cores" defaultCoreName="butterfly1">
          <core name="butterfly" instanceDir="." />
    </cores>
</solr>
Run Code Online (Sandbox Code Playgroud)

我没有发布我的Schema.xml文件,因为它只是具有不同字段名称的示例的修剪版本.我正在使用绝对文件路径只是因为它似乎更容易开始.

小智 1

在 solr.xml 片段中,默认CoreName 是butterfly1。您的架构中没有名称为 =butterfly1 的核心。

您使用什么版本的 solr 服务器?