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