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