一、什麼是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