【问题标题】:how to setup a EmbeddedSolrServer instance?如何设置 EmbeddedSolrServer 实例?
【发布时间】:2011-06-02 22:24:42
【问题描述】:

我无法让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 文件,因为它只是示例文件的精简版本,具有不同的字段名称。我使用绝对文件路径只是因为它似乎更容易上手。

【问题讨论】:

  • 核心文件夹是否存在?在您显示之前的日志中是否有任何消息?

标签: java lucene solr


【解决方案1】:

在你的 solr.xml sn-p 中,defaultCoreName 是butterfly1。您的架构中没有名称 =butterfly1 的核心。

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

【讨论】:

    【解决方案2】:

    这主要发生在EmbeddedSolrServer 无法找到核心时。通常是因为缺少core.properties 文件(查看Solr configuration files)。

    考虑到很多事情都可能出错,最近我写了一个 Java 示例,可以帮助您编写自己的测试配置、加载数据和运行 junit 测试。

    https://github.com/freedev/EmbeddedSolrServer-junit-example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多