我正在将solr从4.6版本迁移到5.5版本,我们有单独的请求处理程序,我们在其中提供没有字段名称的查询,例如q = book。但对于select请求处理程序,我们需要使用字段名称传递请求,例如q = type:book。 如果我没有字段名称,我曾经得到一个错误“在df中没有指定字段名称”,这很好。 但是在迁移到5.5之后,具有不同请求处理程序的请求也会显示此错误,并且仅当我通过浏览器查询时也是如此。通过java代码的相同查询工作正常,以下提到的查询工作正常: http://localhost:8983/solr/publications?q=book&wt=xml 这在哪里不起作用http://localhost:8983/solr/select?q=book&wt=xml&qt=/publications。
这两个查询在solr 4版本中都运行良好。
这个参数有什么变化吗?或者是否必须使用第一个请求?
答案 0 :(得分:2)
如果您未使用q
参数指定字段名称。 solr使用默认字段名称,可以使用df
为solrconfig.xml文件中的每个请求处理程序指定。
示例:
<requestHandler name="/select" class="solr.SearchHandler">
<!-- default values for query parameters can be specified, these
will be overridden by parameters in the request
-->
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">text</str>
</lst>
</requestHandler>
和qt
param
solrconfig.xml文件中有<requestDispatcher>
,默认情况下设置为false。
如果requestDispatcher设置为true solr请求
例如:http://localhost:8983/solr/select?q=book&wt=xml&qt=/publications
以上请求使用“/ select”表示如果配置文件中没有该名称的请求处理程序。 Solr使用“qt”参数按名称
查找处理程序,而不是错误