我正在将solr从4.6版迁移到5.5,我们有单独的请求处理程序,其中我们提供了无字段名称的查询,例如q = book。但是对于选择请求处理程序,我们需要通过字段名称传递请求,例如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 =/出版物。
两个查询在Solr 4版本中都很好。
此参数有什么变化吗?还是必须使用第一个请求?
如果您不用q
参数指定字段名称。SOLR使用默认字段名称,可以在solrconfig.xml文件中为每个请求处理程序指定使用df
。
示例:
<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
参数
solrconfig.xml文件中有 <requestDispatcher>
,默认情况下设置为false。
如果请求dispatcher设置为truesolr请求
ex:http://localhost:8983/solr/select?q = book&amp; wt = xml&amp; qt =/出版物。
上面的请求使用"/select"说明是否没有请求处理程序在您的配置文件中使用该名称。Solr使用" QT"参数而不是错误,而是按名称查找处理程序