lucene 如何设置一个嵌入式SolrServer示例?

lymgl2op  于 2022-11-07  发布在  Lucene
关注(0)|答案(2)|浏览(176)

我在运行EmbeddedSolrServer时遇到了麻烦。CoreContainer的JavaDoc至少可以说是稀疏的。我已经查看了“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)

设置服务器的代码是:

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文件,因为它只是一个修剪版本的例子之一与不同的字段名称。我使用绝对文件路径只是因为它似乎更容易刚刚开始。

sshcrbum

sshcrbum1#

在solr.xml片段中,defaultCoreName是butterfly1。在模式中没有name =butterfly1的核心。
您使用的是什么版本的solr服务器?

v7pvogib

v7pvogib2#

这种情况通常发生在EmbeddedSolrServer找不到内核的时候,通常是因为core.properties文件丢失了(看一下Solr configuration files)。
考虑到有很多事情可能出错,最近我写了一个Java示例,它可以帮助您编写自己的测试配置、加载数据和运行junit测试。
https://github.com/freedev/EmbeddedSolrServer-junit-example

相关问题