Elasticsearch Analysis(分析器) 學習記錄

在es中,一個分詞器通常可以包含三個模版,不論是內置的還是自定義:character filters,tokenizers, token filters.

內置的分析程序會將這些構建塊預先打包到適合不同語言和文本類型的分析程序中。彈性搜索還公開了單個的構建塊,以便將它們組合在一起來定義新的自定義分析程序。

character filters字符過濾器

字符篩選器接收原始文本作爲字符流,並通過添加、刪除或更改字符來轉換流,例如,一個字符過濾器可用於將印度阿拉伯數字(٠‎١٢٣٤٥٦٧٨‎٩‎)轉化成阿拉伯數字(0123456789),或者從流中剝離HTML <b> 元素。

分析器可能有零個或多個字符過濾器,這些過濾器是按順序應用的


tokenizers(分詞器)

tokenizer接收一個字符流,將其分解爲單個令牌(通常是單個單詞),並輸出一個令牌流。例如,每當它看到任何空白時,一個空格記號賦予器將文本分解爲令牌。它將把“敏捷的棕色狐狸”改爲“敏捷,棕色,狐狸!”

tokenizer還負責記錄每個術語的順序或位置,以及術語所代表的原始單詞的開始和結束字符偏移量。

一個分析儀必須只有一個記號筆。


token filters(令牌過濾器)

令牌過濾器接收令牌流,並可添加、刪除或更改令牌。例如,一個小寫的令牌過濾器將所有令牌轉換爲小寫,一個停止令牌過濾器刪除了與令牌流相似的普通單詞(停止字),並且一個同義詞令牌過濾器將同義詞引入到令牌流中。

令牌過濾器不允許更改每個令牌的位置或字符偏移量。

一個分析器可能有零個或多個令牌過濾器,它們是按順序應用的。


Analyzers

Configuring built-in analyzers(配置內置分析器)

內置的分析程序可以直接使用,不需要任何配置。但是,其中一些支持配置選項來改變它們的行爲。例如,可以配置標準分析器來支持stop單詞列表。

Standard Analyzer(標準分析器)

標準分析器是在沒有指定的情況下使用的默認分析器。它提供基於語法的標記化(基於Unicode的文本分割算法,如Unicode標準附件#29所指定),並且適用於大多數語言。






keep_first_letter                                          阿莫西林>amxl                                                                      default: true

keep_separate_first_letter                                 阿莫西林>a,m,x,l                                                                   default: false

lowercase                                                  lowercase non Chinese letters(小寫非中文字母)                                       default: true

trim_whitespace                                            剔除空格                                                                            default: true

keep_full_pinyin                                           阿莫西林>[a,mo,xi,lin]                                                              default: true

keep_joined_full_pinyin                                    阿莫西林> [amoxilin]                                                                default: false


keep_none_chinese_in_joined_full_pinyin                    阿莫西林123>amoxilin123                                                             default: false


none_chinese_pinyin_tokenize                               amoxilin123jiaonang>a,mo,xi,lin,123,jiao,nang                                       default: true


keep_none_chinese_in_first_letter                          阿莫西林AT2018->amxlat2018                                                          default: true

remove_duplicated_term                                     when this option enabled, duplicated term will be removed to save index             default: false

limit_first_letter_length                                  set max length of the first_letter result                                           default: 16

keep_original                                              when this option enabled, will keep original input as well                         default: false

發佈了30 篇原創文章 · 獲贊 11 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章