我试图在我的服务器上做一些工作,但遇到问题。当我尝试通过管理面板ping服务器时,我收到此错误,我认为这可能导致问题:
服务器遇到内部错误(Ping查询导致异常: undefined field text 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)at 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.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在
任何人都可以给我一些关于可能出错的指导吗?我正在使用Solr 3.6。我认为它可能与schema.xml中定义的“文本”有关?
这是我目前的架构:https://gist.github.com/3689621
非常感谢任何帮助。
詹姆斯
答案 0 :(得分:14)
根据错误,我猜测/ 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
。
答案 1 :(得分:2)
在schema.xml中添加此行
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>