Elasticsearch?

全文搜尋引擎對文件進行分析,首先通過Tokenizer得到Token,Token通過Token Filter獲得Term。

Token有稱為標記、詞元,Term稱為詞。ES中Tokenizer大都認為是分詞器。這裡我們主要說Tokenizer,不看Filter,所以本文中的Token我們就稱為是詞。

方法/步驟

1、標準分詞器 Standard Tokenizer

一個標準的分詞器提供基於語法的分詞器,那是一個適合大部分歐洲語言文件的很好的分詞器。分詞器實現Unicode文字分割演算法,該分割演算法在Unicode Standard Annex #29中指定。

Elasticsearch 十三、分詞器Tokenizer

2、連詞分詞器 NGram Tokenizer

如果詞的長度大於最短詞長度則分詞,則依次分成最小長度遞進到最大長度的詞。

例如:中華人民共和國 min_gram=2,max_gram=3。結果:中華、中華人、華人、華人民、人民、人民共、民共、民共和、共和、共和國、和國。

Elasticsearch 十三、分詞器Tokenizer

3、邊際連詞分詞器 Edge NGram Tokenizer

該分詞器和nGram分詞器很類似,但是分的詞僅僅包含該詞的開始部分。

分詞屬性和NGram Tokenizer的一樣。

例如:中華人民共和國 全國人大 min_gram=2,max_gram=5,"token_chars":["letter","digit"]

結果:中華、中華人、中華人民、中華人民共、全國、全國人、全國人大

注意:單個詞'中華人民共和國'的長度大於5,'和國'不會出現在分詞結果中。

Elasticsearch 十三、分詞器Tokenizer

4、關鍵字分詞器 Keyword Tokenizer

keyword分詞器輸出和它接收到的相同的字串。即不分詞,可以設定關鍵字的長度buffer_size預設256。

Elasticsearch 十三、分詞器Tokenizer

5、字元分詞器 Letter Tokenizer

字元(letter)型別分詞器將文字按非字元(non-lentter)進行分詞。這就是說,它定義臨近的最大長度的字元為一個詞。注意,這個適合大部分歐洲的語言,但是對一些亞洲的語言來說就很糟糕了,它們的詞不是以空格來分割的。

Elasticsearch 十三、分詞器Tokenizer

6、小寫分詞器 Lowercase Tokenizer

lowercase將詞全部轉換成小寫,其他的同letter Tokenizer

Elasticsearch 十三、分詞器Tokenizer

7、空格分詞器Whitespace Tokenizer

以空格來分詞

Elasticsearch 十三、分詞器Tokenizer

8、模式分詞器/正則分詞器 Pattern Tokenizer

根據正則表示式的匹配規則來分詞。

group set to -1 (the default) is equivalent to "split". Using group >= 0 selects the matching group as the token. For example, if you have:

pattern = '([^']+)' group = 0 input = aaa 'bbb' 'ccc'

the output will be two tokens: 'bbb' and 'ccc' (including the ' marks). With the same input but using group=1, the output would be: bbb and ccc (no ' marks).

Elasticsearch 十三、分詞器Tokenizer

9、標準Email URL分詞器 UAX Email URL Tokenizer

和標準分詞器一樣,但是把email和url當作一個詞。

UAX Email URL Tokenizer有人翻譯為'不拆分email、url的分詞器',覺得不太恰當,UAX個人認為是Unicode Standard Annex,見標準分詞器中。

Elasticsearch 十三、分詞器Tokenizer

10、路徑層次分詞器 Path Hierarchy Tokenizer

例如:/something/something/else

結果:/something、/something/something、/something/something/else

預設定界符: /

Elasticsearch 十三、分詞器Tokenizer

11、典型的編譯器 Classic Tokenizer

classic分詞器提供基於語法的分詞器,這對英語文件是一個很好的分詞器。

Elasticsearch 十三、分詞器Tokenizer

12、泰語分詞器 Thai Tokenizer

對泰文進行分詞,如果用在其他語言上同標準分詞器。

Elasticsearch 十三、分詞器Tokenizer

相關問題答案