【发布时间】:2016-09-08 12:08:01
【问题描述】:
我是 Solr 的新手。
我从管理页面创建了两个核心,我们称它们为“书籍”和“图书馆”,并在那里导入了一些数据。在我重新启动服务器之前,一切正常。当我这样做时,其中一个核心消失了,管理页面中的日志屏幕包含:
SEVERE CoreContainer null:java.lang.NoClassDefFoundError: net/arnx/jsonic/JSONException
SEVERE SolrCore REFCOUNT ERROR: unreferenced org.apache.solr.core.SolrCore@454055ac (papers) has a reference count of 1
我正在管理界面中测试我的查询;当我刷新它时,“库”核心消失了,尽管我通常可以提前一分钟查询它。 solr.xml 的内容是完整的。即使我重新启动 Tomcat,它仍然没有。
此外,我试图构建一个类似于此的查询:“在亚特兰大或纽约的图书馆中查找与‘战争和平’相匹配的书籍”。所以给定核心“书籍”和“图书馆”,我会发出“书籍”以下查询(这可能是错误的,如果是请纠正我):
(title:(war peace) blurb:(war peace))
AND _query_:"{!join
fromIndex=libraries from=libraryid to=libraryid
v='city:(new york) city:(atlanta)'}"
当我这样做时,查询失败,“库”核心消失,出现上述症状。如果我重新添加它,我可以继续工作(只要我不重新启动服务器或发出另一个联接查询)。
我正在使用 Solr 4.0;如果有人知道发生了什么,我将不胜感激。我无法找到有关错误消息含义的任何信息,所以如果有人能建议在哪里寻找它,或者如何调试它,那将是非常棒的。我什至找不到日志文件本身的位置...
【问题讨论】:
-
你使用的是 start.jar 吗?我会将 solr 文件调整为 (tomcat),否则我不希望内核持续存在或日志可用。
-
其实solr.xml就是包含核心信息的文件;条目看起来像:
<core name="collection1" instanceDir="collection1" />。当您设置选项时,Web 界面会保留到该文件;我引用:“持久性:将通过 API 所做的更改保存到此文件” -
@aitchnyu:我使用的不是
start.jar,而是Debian 软件包。我知道solr.xml的用途,我检查它以确认当核心变得不可用并从管理页面消失时核心的条目没有被删除。核心确实存在 - 数据不会丢失,如果我从管理页面添加核心,我可以再次访问数据而无需重新导入。从文件加载内核时会发生某些事情,而通过界面加载内核时不会发生,我不知道是什么,因为错误消息很神秘。 -
所以核心没有得到reloaded。我会避免使用 solr 的 debian 软件包,因为我担心像这样的怪癖和错误配置并使用 Solr 4.1,因为 4.0 可能很古怪(新主要版本中的第一个版本)
-
@aitchnyu:好的,用 API 术语来说:如果我发出 RELOAD 操作,我会收到由
org.apache.solr.common.SolrException: No such core: libraries引起的错误。它不仅没有重新加载,它不存在,直到我重新添加添加它(使用 CREATE)。我将尝试安装 4.1,看看是否能解决问题,但我不确定......我真的很想知道错误的含义:(
标签: solr