solr注意事项-solrconfig中的默认搜索域会覆盖schema中的默认搜索域,注意copyfeild中被corp的字段搜索

结论一:solrconfig.xml的默认搜索配置权限高于schema.xml中的默认搜索配置!

配置1:solrconfig.xml文件中关于select的配置:

  <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>//默认搜索字段为text;
     </lst>

    </requestHandler>


配置2:schema.xml中的默认搜索配置为:  <defaultSearchField>title</defaultSearchField>//默认搜索字段为title

 <field name="title" type="text_mmseg" indexed="true" stored="true" multiValued="false"/>

 <field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>

 <copyField source="title" dest="text"/>

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
       
 <tokenizer class="solr.StandardTokenizerFactory"/>
         </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
         </analyzer>
    </fieldType>


其中,title的分析器是mmseg4j,text是copyfeil,分析器为StandardTokenizerFactory


--------------------------------------------------以上配置引发的超级无敌宇宙囧的问题!-----------------------------------------------------------------------

导致我花费了九牛二虎之力解决了这个很二很巧合的脑残问题:搜索title域的查询串,被解析为text域parsedQuery。巧合的是text是title的copyfeild,两个feild上的内容是一样的,只是解析方式不同!!


检索导致的问题是:


“黄海波视频”搜索后,debugQuery模式:parsedQuery一个是text; 另一个是title; 两个同样schema的core的搜索下,结果不同!!!!!!!!!!!!


结论二:有copyfeild时候,正巧搜索的是被copy的feild内容:当你用空格搜索的时候会被解析成这样:比如:title:黄海波  视频-----》(title:黄海波  title 海波)+text:视+text:频。竟然把空格后面的内容自动有copyfeild的分析器解析。。!!!


posted @ 2014-07-04 17:12  飞扬的薰衣草  阅读(704)  评论(0编辑  收藏  举报