
2、分詞器:分詞器是ES中專門處理分詞的組件,英文為Analyzer,它的組成如下:
- Character Filters:針對原始文本進(jìn)行處理,比如去除html標(biāo)簽
- Tokenizer:將原始文本按照一定規(guī)則切分為單詞
-
Token Filters:針對Tokenizer處理的單詞進(jìn)行再加工,比如轉(zhuǎn)小寫、刪除或增新等處理
3、分詞器調(diào)用順序:例:
image
4、ElasticSearch配備了廣泛的內(nèi)置分詞器,無需進(jìn)一步配置即可用于任何索引:即如果不進(jìn)行任何配置,分詞的規(guī)則就是使用內(nèi)置分詞器的默認(rèn)規(guī)則。當(dāng)然了,也可以根據(jù)使用者的需求,在內(nèi)置分詞器的基礎(chǔ)上對Character Filters、Tokenizer、Token Filters進(jìn)行配置。
一、內(nèi)置分詞器:
Standard Analyzer
1、描述&特征:
(1)默認(rèn)分詞器,如果未指定,則使用該分詞器。
(2)按詞切分,支持多語言
(3)小寫處理,它刪除大多數(shù)標(biāo)點(diǎn)符號、小寫術(shù)語,并支持刪除停止詞。
2、組成:
(1)Tokenizer:Standard Tokenizer
(2)Token Filters:Lower Case Token Filter
例:POST _analyze
{
"analyzer": "standard",
"text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}
上面的句子會產(chǎn)生下面的條件:
[ the, 2, quick, brown, foxes, jumped, over, the, lazy, dog's, bone ]
Simple Analyzer
1、描述&特征:
(1)按照非字母切分,簡單分詞器在遇到不是字母的字符時將文本分解為術(shù)語
(2)小寫處理,所有條款都是小寫的。
2、組成:
(1)Tokenizer:Lower Case Tokenizer
POST _analyze
{
"analyzer": "simple",
"text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}
上面的句子會產(chǎn)生下面的條件:
[ the, quick, brown, foxes, jumped, over, the, lazy, dog, s, bone ]
Whitespace Analyzer
1、描述&特征
(1)空白字符作為分隔符,當(dāng)遇到任何空白字符,空白分詞器將文本分成術(shù)語。
2、組成:
(1)Tokenizer:Whitespace Tokenizer
例:
POST _analyze
{
"analyzer": "whitespace",
"text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}
上面的句子會產(chǎn)生下面的條件:
[ The, 2, QUICK, Brown-Foxes, jumped, over, the, lazy, dog's, bone. ]
Stop Analyzer
1、描述&特征:
(1)類似于Simple Analyzer,但相比Simple Analyzer,支持刪除停止字
(2)停用詞指語氣助詞等修飾性詞語,如the, an, 的, 這等
2、組成 :
(1)Tokenizer:Lower Case Tokenizer
(2)Token Filters:Stop Token Filter
例:
POST _analyze
{
"analyzer": "stop",
"text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}
上面的句子會產(chǎn)生下面的條件:
[ quick, brown, foxes, jumped, over, lazy, dog, s, bone ]
Keyword Analyzer
1、組成&特征:
(1)不分詞,直接將輸入作為一個單詞輸出,它接受給定的任何文本,并輸出與單個術(shù)語完全相同的文本。
2、組成:
(1)Tokenizer:Keyword Tokenizer
例:
POST _analyze
{
"analyzer": "keyword",
"text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}
上面的句子會產(chǎn)生下面的條件:
[ The 2 QUICK Brown-Foxes jumped over the lazy dog's bone. ]
Pattern Analyzer
模式分詞器使用正則表達(dá)式將文本拆分為術(shù)語。
(1)通過正則表達(dá)式自定義分隔符
(2)默認(rèn)是\W+,即非字詞的符號作為分隔符
Language Analyzers
ElasticSearch提供許多語言特定的分析工具,如英語或法語。
Fingerprint Analyzer
指紋分詞器是一種專業(yè)的指紋分詞器,它可以創(chuàng)建一個指紋,用于重復(fù)檢測。
Custom analyzers
如果您找不到適合您需要的分詞器,您可以創(chuàng)建一個自定義分詞器,它結(jié)合了適當(dāng)?shù)淖址^濾器、記號賦予器和記號過濾器。
