java - "No such core"使用 EmbeddedSolrServer 的异常

标签 java solr solrj

我正在尝试使用 Solrj 连接到 Solr 索引,特别是 EmbeddedSolrServer .我的 solr.xml看起来像这样:

<solr>  
  <cores adminPath="/admin/cores" defaultCoreName="db">
        <core default="true" instanceDir="../db/" name="db"/>
  </cores>
</solr>

向服务器执行查询命令时
CoreContainer coreContainer = new CoreContainer("C:\\development\\solr-4.4.0\\example tasks\\solr");
EmbeddedSolrServer server = new EmbeddedSolrServer(coreContainer, "db");

Collection<SolrCore> cores = coreContainer.getCores();
System.out.println(cores);


SolrQuery query = new SolrQuery();
query.setQuery("*:*");
query.addFacetField("taskType", "taskName");
QueryResponse rsp = server.query(query);

我收到以下异常:
Exception in thread "main" org.apache.solr.common.SolrException: No such core: db
db核心在那里,当我使用 Jetty 启动 Solr 时,同样的 solr.xml文件,一切正常。

最佳答案

评论后编辑:

在 4.4.0 版本中,您需要使用 load()加载内核的函数。

CoreContainer coreContainer = new CoreContainer("C:\\development\\solr-4.4.0\\example tasks\\solr");
container.load();

如果您还没有看过 solr wiki for EmbeddedSolrSever , 请看一看。

我希望它能解决你的问题。

关于java - "No such core"使用 EmbeddedSolrServer 的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18917802/

相关文章:

solr - 如何使用自定义处理程序/插件更新 Solr 服务器端的 Solr 文档

solrj 原子更新 - 如何将字段设置为空?

java - 在 Solrj 中执行 MLT(更像这样)查询

java - 引用 fnc

用于监控音频的java生产者消费者线程

java - Struts2 - 在操作的执行方法中访问请求对象

java - HashMap put方法

groovy - CrafterCMS : How to output html body indexed by solr?

java - 在服务器端创建具有自动完成功能的查询

java - 如何同步 Solr 导入过程?