ES分詞器 - 內(nèi)置分詞器

1、分詞:分詞是將文本轉(zhuǎn)換成一系列單詞的過程,也可以叫文本分析,在ES里面稱為Analysis:
image

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ù)淖址^濾器、記號賦予器和記號過濾器。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容