Elasticsearch分詞(Analyzer)

一、什麼是Analysis ?

Analysis 叫做分詞,就是將文本轉換爲一系列單詞(term/token)的過程。
Analysis 是通過Analyzer來實現的。
可使用Elasticserach內置的分析器或按需優化分需求或安裝分析器插件 。
在數據寫入的時候轉換詞條於Query語句查詢的時候也需要用相同的分析器。

二、Analyzer的組成與工作機制

  • Character Filter 針對原始文本處理,例如去除html。
  • Tokenizer 按規則切分爲單詞。
  • Tokenizer Filter將切分的單詞進行加工,小寫,刪除stopwords,增加同義詞。
    在這裏插入圖片描述

三、Elasticserach內置的一些分詞器

1) _analyzer API 三種使用方法
在這裏插入圖片描述
2) Standard Analyzer
原理
在這裏插入圖片描述
示例
在這裏插入圖片描述
3)Simple Analyzer
原理
在這裏插入圖片描述
示例
在這裏插入圖片描述
4)Whitespace Analyzer
原理
在這裏插入圖片描述
示例
在這裏插入圖片描述

5)Stop Analyzer
原理
在這裏插入圖片描述
示例
在這裏插入圖片描述
6)Keyword Analyzer
原理
在這裏插入圖片描述
示例
在這裏插入圖片描述
7)Pattern Analyzer
原理
在這裏插入圖片描述
示例
在這裏插入圖片描述
8)Language Analyzer
支持按語言分詞
在這裏插入圖片描述
示例
在這裏插入圖片描述

四、中文分詞

中文分詞的難點:

  • 中文句子,切成一個一個詞(不是一個一個字)。
  • 英文中,單詞有自然的空格作爲分隔。
  • 一句中文,在不同的上下文,有不同的理解。
    1)ICU Analyzer
    原理在這裏插入圖片描述
    演示(需要提前安裝 ICU Analyze 插件)
    在這裏插入圖片描述
    2)IK
    在這裏插入圖片描述
    3) THULAC
    在這裏插入圖片描述
發佈了103 篇原創文章 · 獲贊 20 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章