什么是solr的默认查询解析器

时间:2014-04-16 17:03:34

标签: parsing solr lucene

我对solr文件中的这些词感到困惑:

https://cwiki.apache.org/confluence/display/solr/The+Standard+Query+Parser

  

在Solr 1.3之前,标准请求处理程序称为标准   查询解析器作为默认查询解析器。在自Solr 1.3以来的版本中,   标准请求处理程序将DisMax查询解析器称为   默认查询解析器。

https://cwiki.apache.org/confluence/display/solr/The+DisMax+Query+Parser

  

q参数不支持通配符,例如*。

所以我下载solr 4.7.2,解压缩

检查我有

  <requestHandler name="/select" class="solr.SearchHandler">
默认情况下,在<{1}}中

然后,我索引这个文件

solr-4.7.2/example/solr/collection1/conf/solrconfig.xml

但是

<?xml version="1.0"?>
<add>
  <doc boost="1.0">
        <field name="id">item1</field>
    </doc>
</add>

找到文档,

http://localhost:8983/solr/collection1/select?q=id:it*

找不到项目

所以看起来标准查询解析器是默认值而不是dismax查询解析器?

3 个答案:

答案 0 :(得分:1)

默认值在solrconfig.xml文件中定义。 4.7.2附带的默认solrconfig.xml文件具有以下条目:

edismax

这意味着默认值是扩展的dismax查询解析器。 http://wiki.apache.org/solr/ExtendedDisMax

答案 1 :(得分:0)

我认为标准查询解析器是默认值而不是dismax查询解析器。  但我们可以为任何solr(ver 4)请求处理程序指定默认查询解析器。

下面是solrConfig.xml文件中的一些配置条目

    <requestHandler name="/query" class="solr.SearchHandler">
         <lst name="defaults">
           <str name="echoParams">explicit</str>
           <int name="rows">20</int>
           <str name="defType">edismax</str>
           <str name="wt">json</str>
         </lst>
      </requestHandler>

答案 2 :(得分:0)

我无法在您的初始问题中添加评论,但nagendra基本上是对的,尽管您使用的是/query而不是他在其中定义为/select的{​​{1}}他来自requestHandler的细分。

您在solrconfig.xml之前的网址中也缺少&,因此它将被视为搜索字符串的一部分,而不是单独的参数。

defType

不会返回结果,因为它将使用不支持http://localhost:8983/solr/collection1/select?q=id:it*&defType=dismax 的dismax解析器,但是

*

将给出结果,而不是使用http://localhost:8983/solr/collection1/select?q=id:it*&defType=edismax

截至撰写本文时,您所引用的页面已替换为以下内容,该内容表示标准查询解析器是默认查询器,因此它可能已还原?

https://lucene.apache.org/solr/guide/6_6/the-standard-query-parser.html