solr自定義分詞器

目的:在對英文句子分詞的時候,一般採用採用的分詞器是WhiteSpaceTokenizerFactory,有一次因業務要求,需要根據某一個特殊字符(以逗號分詞,以豎線分詞)分詞。如圖1,我輸入的詞,如果用ik分詞器,會分成如圖1的效果,用自定義按逗號分割的分詞器,會分成如圖2的效果。

 圖(1)

 

 圖(2)

1.加入jar包

<dependency> 

 <groupId>org.apache.solr</groupId> 

 <artifactId>solr-core</artifactId> 

 <version>6.0.0</version> 

 </dependency>

2.參照WhitespaceTokenizerFactory的源碼,寫一個自己的MyVerticalLineTokenizerFactory如圖3,內容基本不變:


 

                                                                                     圖(3)

3.寫一個MyVerticalLineTokenizer.java類如圖4,實現用逗號分詞

 圖4

這裏最主要的方法就是isTokenChar,它控制了分詞的字符

4.需要把剛纔的java文件打成jar包,Eclipse,直接選中兩個類文件,右鍵 -> Export -> JAR File -> Select the export destination: ->選擇輸出路徑,填一個jar名字:MyVerticalLineTokenizerFactory -> Finish,

得到的MyVerticalLineTokenizerFactory.jar文件大約3KB,將改文件放置到tomcat7/webapps/solr/WEB-INF/lib下,在shcema.xml中定義自己的field如圖5

 圖(5)

重啓tomcat,按照comma_text類型進行分詞,就會出現如圖2的效果。

參照:http://blog.csdn.net/jiangchao858/article/details/68954044

 

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