歡迎光臨
每天分享高質量文章

Elasticsearch 使用中文分詞

(點選上方公眾號,可快速關註)


來源:Way Lau ,

waylau.com/elasticsearch-use-ik-analysis/

本文演示瞭如何使用IK Analysis 外掛來實現在 Elasticsearch 中的中文分詞功能。

使用中文分詞

在“Spring Boot應用企業級部落格系統”課程中(http://coding.imooc.com/class/125.html),所有的部落格功能都已經完成了。讀者朋友們開始愉快地使用部落格來發表部落格了。但如果朋友們足夠細心的話,發現在輸入中文的標簽的時候,存在一定的問題。

比如,當我們想將某個部落格標記為“大神”時,部落格系統卻將這個單詞粗暴的分成瞭如圖21-2所示的兩個詞“大”和“神”。顯然,這並不符合使用者的使用習慣。

這是 Elasticsearch 語言分析器上的限制,它並不能友好的處理所有語言,特別是中文。這種情況下,我們就需要額外的中文分詞器來協助我們了。

本章節,我們將演示使用 IK Analysis 外掛來幫助我們實現中文分詞。

IK Analysis 外掛

IK Analysis 外掛(https://github.com/medcl/elasticsearch-analysis-ik/)就是一款專門用於 Elasticsearch 的分詞器,可以友好的處理中文。

IK Analysis 外掛將 Lucene IK 分析儀(http://code.google.com/p/ik-analyzer/)整合到了 Elasticsearch 中,從而支援自定義分詞。

安裝 IK Analysis

安裝 IK Analysis 非常簡單。主要有兩種方式。

使用 elasticsearch-plugin

如果 Elasticsearch 是 5.5.1 以後的版本,可以使用 elasticsearch-plugin 來安裝,安裝方式如下:

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.1/elasticsearch-analysis-ik-5.5.1.zip

下載解壓到指定目錄

另外一種方式是,下載安裝包,解壓到 Elasticsearch 安裝目錄的 /plugins/目錄下即可。

下圖展示了 IK 的安裝目錄。

需要註意的是,不管是哪種安裝方式,相應的外掛,要對應相應的 Elasticsearch 版本,否則可能會安裝不成功。 下載地址為 https://github.com/medcl/elasticsearch-analysis-ik/releases。本章節,我們使用 IK Analysis for Elasticsearch 5.5.0 版本。

使用 IK Analysis

要使用 IK Analysis,需要在檔案類裡面,指定相應的分詞器。我們在 EsBlog 的 tags 屬性上,添加了searchAnalyzer = “ik_smart”, analyzer = “ik_smart”的註解內容就可以了。

public class EsBlog implements Serializable {

  

    …

 

    @Field(type = FieldType.text,fielddata = true, searchAnalyzer = “ik_smart”, analyzer = “ik_smart”) 

    private String tags;  // 標簽

下圖展示了使用了IK分詞的標簽效果

IK Analysis 型別

ik_smart 是 IK Analysis 其中一種分詞形式。IK Analysis主要有兩種型別的分詞形式,分別是 ik_max_word 和 ik_smart。

  • ik_max_word: 會將文字做最細粒度的拆分,比如會將“中華人民共和國國歌”拆分為“中華人民共和國”、“中華人民”、“中華”、“華人”、“人民共和國”、“人民”、“人”、“民”,、“共和國”、“共和”、“和”、“國歌”等,會窮盡各種可能的組合;

  • ik_smart: 會做最粗粒度的拆分,比如會將“中華人民共和國國歌”拆分為“中華人民共和國”、“國歌”。

參考

  • https://waylau.com/spring-boot-blog-video-release/

  • http://coding.imooc.com/class/125.html

看完本文有收穫?請轉發分享給更多人

關註「ImportNew」,看技術乾貨

贊(0)

分享創造快樂