Solr 5.5中的“qt”param

时间:2017-05-31 14:14:52

标签: solr solr-query-syntax requesthandler

我正在将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版本中都运行良好。

这个参数有什么变化吗?或者是否必须使用第一个请求?

1 个答案:

答案 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”参数按名称

查找处理程序,而不是错误