solr添加IKAnalyzer分詞器

最近在學習solr時候,碰到一個問題,就是如果採用默認的分詞器,會將每個字都分割成一個詞組進行索引

比如:長沙市  會被分詞爲   “長”,“沙”,“市”,這樣就達不到我想要的效果

    例如:

        

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

   這個是默認的分詞器

    

 <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <!-- in this example, we will only use synonyms at query time
        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        -->
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>	  
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>
    我對城市名稱進行索引

    結果:

    


      對每個字都進行了分詞

  所以這裏我們需要手動加入分詞功能,我這裏採用的IKAnalyzer,這裏分詞,會進行詞組分詞      “長沙”,“市”  這樣

      在schema.xml文件中加入   

    <fieldType name="text_ik" class="solr.TextField">     
          <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>     
    </fieldType>  
   
 <field name="name" type="text_ik" indexed="true" stored="true"/>

然後重啓

   
   

   這樣效果就達到了,這裏和lucene的差不多滴!




發佈了36 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章