【问题标题】:solr - set fields as default search field - Using EdisMaxsolr - 将字段设置为默认搜索字段 - 使用 EdisMax
【发布时间】:2013-07-30 07:52:29
【问题描述】:

以下查询对我很有效

http://...:8983/solr/vault/select?q=White&defType=edismax&qf=VersionComments+VersionName

返回版本 cmets 包含 White 的所有文档

我尝试省略包含字段名称的 qf : 在 solr 配置中我写了

<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">PackageName</str>
   <str name="df">Tag</str>
   <str name="df">VersionComments</str>
   <str name="df">VersionTag</str>
   <str name="df">VersionName</str>
   <str name="df">SKU</str>
   <str name="df">SKUDesc</str>
 </lst>

我重新启动 solr 并创建一个完整的导入。
然后我尝试使用

 http://...:8983/solr/vault/select?q=White&defType=edismax

但我没有得到任何文档作为答案。
我做错了什么?

【问题讨论】:

    标签: solr solr4


    【解决方案1】:

    df 是默认字段,只有在 qf 未定义且配置中的单个定义字段时才会生效。

    您可以使用 qt=edismax 参数检查以下配置:-

    <requestHandler name="edismax" class="solr.SearchHandler" >
        <lst name="defaults">
            <str name="defType">edismax</str>
            <str name="echoParams">explicit</str>
            <str name="df">PackageName Tag VersionComments ....</str>
        </lst>
    </requestHandler>
    

    【讨论】:

      【解决方案2】:

      您可以使用带有重量指示的 qf(查询字段)。

      <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="qf">PackageName^40.0 Tag^10.0 VersionComments^5.0 VersionTag^4.0</str>
         <!--
         [....]
         -->
       </lst>
      </requestHandler>
      

      【讨论】:

        【解决方案3】:

        Solr 4.8.1 我们可以如下设置默认值。通过编辑 solrconfig.xml

        <requestHandler name="/clustering" startup="lazy" enable="${solr.clustering.enabled:false}" class="solr.SearchHandler">    
            <lst name="defaults">
        
                <!-- Configure the remaining request handler parameters. -->
                <str name="defType">edismax</str>
                <str name="qf">
                    text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
                </str>
        
                <str name="q.alt">*:*</str>
                <str name="rows">10</str>
                <str name="fl">*,score</str>
            </lst>
                <arr name="last-components">
                  <str>clustering</str>
                </arr>
        </requestHandler>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-29
          • 2011-12-10
          相关资源
          最近更新 更多