我正在尝试使用 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/