ES 分词
- 分詞
- 分詞器
- 分詞器構(gòu)成
- 指定分詞器
- 內(nèi)置分詞器
一 分詞
1、Analysis(分詞) 和 Analyzer(分詞器)
Analysis: 文本分析是把全文本轉(zhuǎn)換一系列單詞(term/token)的過(guò)程,也叫分詞。Analysis是通過(guò)Analyzer來(lái)實(shí)現(xiàn)的。
當(dāng)一個(gè)文檔被索引時(shí),每個(gè)Field都可能會(huì)創(chuàng)建一個(gè)倒排索引(Mapping可以設(shè)置不索引該Field)。
倒排索引的過(guò)程就是將文檔通過(guò)Analyzer分成一個(gè)一個(gè)的Term,每一個(gè)Term都指向包含這個(gè)Term的文檔集合。
當(dāng)查詢query時(shí),Elasticsearch會(huì)根據(jù)搜索類型決定是否對(duì)query進(jìn)行analyze,然后和倒排索引中的term進(jìn)行相關(guān)性查詢,匹配相應(yīng)的文檔。
二 分詞器
分詞器查看命令
POST _analyze {"analyzer": "standard","text": "Like X 國(guó)慶放假的" }運(yùn)行結(jié)果
三 分詞器構(gòu)成
執(zhí)行順序:
Character Filters--->Tokenizer--->Token Filter三者個(gè)數(shù):
analyzer = CharFilters(0個(gè)或多個(gè)) + Tokenizer(恰好一個(gè)) + TokenFilters(0個(gè)或多個(gè))四 指定分詞器
創(chuàng)建索引時(shí)設(shè)置分詞器
PUT new_index {"settings": {"analysis": {"analyzer": {"std_folded": {"type": "custom","tokenizer": "standard","filter": ["lowercase","asciifolding"]}}}},"mappings": {"properties": {"title": {"type": "text","analyzer": "std_folded" #指定分詞器},"content": {"type": "text","analyzer": "whitespace" #指定分詞器}}} }配置
標(biāo)準(zhǔn)分析器接受下列參數(shù):
max_token_length : 最大token長(zhǎng)度,默認(rèn)255
stopwords : 預(yù)定義的停止詞列表,如_english_或 包含停止詞列表的數(shù)組,默認(rèn)是 none
stopwords_path : 包含停止詞的文件路徑
五 內(nèi)置分詞器
| Standard Analyzer | 默認(rèn)分詞器 |
| Simple Analyzer | 簡(jiǎn)單分詞器 |
| Whitespace Analyzer | 空格分詞器 |
| Stop Analyzer | 刪除停止詞的分詞器 is the |
| Keyword Analyzer | 不分詞 |
| Pattern Analyzer | 正則分詞器 |
| Language Analyzers | 多語(yǔ)言特定的分析工具 |
| Fingerprint Analyzer | 指紋分詞器 |
| Custom analyzers | 自定義分詞器 |
Standard Analyzer
1、描述&特征:
(1)默認(rèn)分詞器,如果未指定,則使用該分詞器。
(2)按詞切分,支持多語(yǔ)言
(3)小寫處理,它刪除大多數(shù)標(biāo)點(diǎn)符號(hào)、小寫術(shù)語(yǔ),并支持刪除停止詞。
2、組成:
(1)Tokenizer:Standard Tokenizer
(2)Token Filters:Lower Case Token Filter
Simple Analyzer
1、描述&特征:
(1)按照非字母切分,簡(jiǎn)單分詞器在遇到不是字母的字符時(shí)將文本分解為術(shù)語(yǔ)
(2)小寫處理,所有條款都是小寫的。
2、組成:
(1)Tokenizer:Lower Case Tokenizer
Whitespace Analyzer
1、描述&特征
(1)空白字符作為分隔符,當(dāng)遇到任何空白字符,空白分詞器將文本分成術(shù)語(yǔ)。
2、組成:
(1)Tokenizer:Whitespace Tokenizer
Stop Analyzer
1、描述&特征:
(1)類似于Simple Analyzer,但相比Simple Analyzer,支持刪除停止字
(2)停用詞指語(yǔ)氣助詞等修飾性詞語(yǔ),如the, an, 的, 這等
2、組成 :
(1)Tokenizer:Lower Case Tokenizer
(2)Token Filters:Stop Token Filter
Keyword Analyzer
1、組成&特征:
(1)不分詞,直接將輸入作為一個(gè)單詞輸出,它接受給定的任何文本,并輸出與單個(gè)術(shù)語(yǔ)完全相同的文本。
2、組成:
(1)Tokenizer:Keyword Tokenizer
Pattern Analyzer
模式分詞器使用正則表達(dá)式將文本拆分為術(shù)語(yǔ)。
(1)通過(guò)正則表達(dá)式自定義分隔符
(2)默認(rèn)是\W+,即非字詞的符號(hào)作為分隔符
Language Analyzers
ElasticSearch提供許多語(yǔ)言特定的分析工具,如英語(yǔ)或法語(yǔ)。
Fingerprint Analyzer
指紋分詞器是一種專業(yè)的指紋分詞器,它可以創(chuàng)建一個(gè)指紋,用于重復(fù)檢測(cè)。
Custom analyzers
如果您找不到適合您需要的分詞器,您可以創(chuàng)建一個(gè)自定義分詞器,它結(jié)合了適當(dāng)?shù)淖址^(guò)濾器、記號(hào)賦予器和記號(hào)過(guò)濾器。
參考
- https://www.jianshu.com/p/65bcac286012
- https://www.cnblogs.com/qdhxhz/p/11585639.html
總結(jié)
- 上一篇: 利用VML标记语言画图、动画制作
- 下一篇: 快衰落、慢衰落,平坦衰落、频率选择性衰落