影响solr的ping功能的配置有三个地方,如下所示:
1 schema.xml的defaultSearchField
<defaultSearchField>name</defaultSearchField>
2 SolrConfig.xml的"/select"中的"df"属性
<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">text</str>
</lst>
</requestHandler>
2 SolrConfig.xml的"/admin/ping"中的"df"属性
<!-- ping/healthcheck -->
<requestHandler name="/admin/ping" class="solr.PingRequestHandler">
<lst name="invariants">
<str name="q">solrpingquery</str>
</lst>
<lst name="defaults">
<str name="echoParams">all</str>
</lst>
</requestHandler>
优先级:"/admin/ping"中的"df"属性 > "/select"中的"df"属性 > defaultSearchField
"/admin/ping"中不配置"df"属性的话,就使用"/select"的"df"属性,即text字段,而text在schema.xml文件中未定义,导致出现异常。
解决方法:在SolrConfig.xml的"/admin/ping"中增加 <str name="df">title</str>, 其中title为schema.xml定义的某个字段。