天天看點

Elasticsearch分詞(Analyzer)

一、什麼是Analysis ?

Analysis 叫做分詞,就是将文本轉換為一系列單詞(term/token)的過程。

Analysis 是通過Analyzer來實作的。

可使用Elasticserach内置的分析器或按需優化分需求或安裝分析器插件 。

在資料寫入的時候轉換詞條于Query語句查詢的時候也需要用相同的分析器。

二、Analyzer的組成與工作機制

  • Character Filter 針對原始文本處理,例如去除html。
  • Tokenizer 按規則切分為單詞。
  • Tokenizer Filter将切分的單詞進行加工,小寫,删除stopwords,增加同義詞。
    Elasticsearch分詞(Analyzer)

三、Elasticserach内置的一些分詞器

1) _analyzer API 三種使用方法

Elasticsearch分詞(Analyzer)

2) Standard Analyzer

原理

Elasticsearch分詞(Analyzer)

示例

Elasticsearch分詞(Analyzer)

3)Simple Analyzer

原理

Elasticsearch分詞(Analyzer)

示例

Elasticsearch分詞(Analyzer)

4)Whitespace Analyzer

原理

Elasticsearch分詞(Analyzer)

示例

Elasticsearch分詞(Analyzer)

5)Stop Analyzer

原理

Elasticsearch分詞(Analyzer)

示例

Elasticsearch分詞(Analyzer)

6)Keyword Analyzer

原理

Elasticsearch分詞(Analyzer)

示例

Elasticsearch分詞(Analyzer)

7)Pattern Analyzer

原理

Elasticsearch分詞(Analyzer)

示例

Elasticsearch分詞(Analyzer)

8)Language Analyzer

支援按語言分詞

Elasticsearch分詞(Analyzer)

示例

Elasticsearch分詞(Analyzer)

四、中文分詞

中文分詞的難點:

  • 中文句子,切成一個一個詞(不是一個一個字)。
  • 英文中,單詞有自然的空格作為分隔。
  • 一句中文,在不同的上下文,有不同的了解。

    1)ICU Analyzer

    原理

    Elasticsearch分詞(Analyzer)
    示範(需要提前安裝 ICU Analyze 插件)
    Elasticsearch分詞(Analyzer)
    2)IK
    Elasticsearch分詞(Analyzer)
    3) THULAC
    Elasticsearch分詞(Analyzer)