6

我试图在我的服务器上做一些工作,但遇到了问题。当我尝试通过管理面板 ping 服务器时,我收到此错误,我认为这可能是导致问题的原因:

服务器遇到内部错误(Ping 查询导致异常:未定义字段文本 org.apache.solr.common.SolrException:Ping 查询导致异常:未定义字段文本在 org.apache.solr.handler.PingRequestHandler.handleRequestBody(PingRequestHandler.java: 76) 在 org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) 在 org.apache.solr.core.SolrCore.execute(SolrCore.java:1376) 在 org.apache.solr.servlet.SolrDispatchFilter .execute(SolrDispatchFilter.java:365) 在 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org. org.apache.catalina.core 中的 apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)。StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在

谁能给我一些指导,看看可能出了什么问题?我正在使用 Solr 3.6。我认为这可能与 schema.xml 中定义的“文本”有关?

这是我目前的架构:https ://gist.github.com/3689621

任何帮助将非常感激。

詹姆士

4

2 回答 2

17

根据错误,我猜测 /admin/ping requestHandler 中定义的查询正在搜索名为 的字段text,而您没有在架构中定义该字段。

这是一个典型的 ping requestHandler 部分

<requestHandler name="/admin/ping" class="solr.PingRequestHandler">
  <lst name="invariants">
    <str name="q">solrpingquery</str>
  </lst>
  <lst name="defaults">
    <str name="qt">standard</str>
    <str name="echoParams">all</str>
    <str name="df">text</str>
  </lst>
</requestHandler>

注意如何<str name="df">text<str>设置。这是 ping 将执行搜索的默认字段。您应该将其更改为在您的架构中定义的字段,也许,title或者description基于您的架构。

于 2012-09-10T11:34:27.560 回答
2

在您的 schema.xml 中添加这一行

<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
于 2013-11-14T14:39:58.860 回答