一嘿架、normalization(文檔正常化)
normalization主要是用來提高查詢的命中率的 我們知道es會將一段文字進行分詞 形成倒排索引后存儲 如下面的這句話
Mr. Ma is an excellent teacher. I‘m glad to meet him
如果搜索的關鍵字為Teacher 由于原文檔中并沒有Teacher這個單詞 所以正常情況該搜索是無法命中的 所以這個時候就需要normalization來處理啸箫。normalization簡單的來說就是將搜索條件中的一些不規(guī)范的詞項進行規(guī)范化如將搜索條件中的大寫字母轉成小寫字母 對搜索條件中的錯誤單詞進行校正耸彪、去掉單詞中的復數(shù)形式、去掉語氣助詞等等忘苛。
示例
二蝉娜、Character Filter(字符過濾器)
es的字符過濾器有三種 html_strip、mapping扎唾、pattern_replace
html_strip (HTML標簽過濾器)
html_strip 這種字符過濾器用于處理文本中的html標簽 html_strip還可以通過屬性指定哪些html需要保留 通過escaped_tags屬性來設置要保留哪些html標簽
Mapping字符過濾器
mapping過濾器主要是將某些特定的詞匯做一個轉換
pattern_replace (正則字符過濾器)
備注上面幾張截圖的標注有問題 analyzer是分析器 tokenizer才是分詞器
三 分詞器 tokenizer
默認的分詞器是standard 而中文分詞器 一般用ik分詞器
四 自定義分詞器
這里說的自定義分詞器其實是指的自定義分析器
五 中文分詞器
中文分詞器一般用ik分詞器
#ik分詞器github地址 找到對應的版本下載
https://github.com/medcl/elasticsearch-analysis-ik
安裝ik分詞器
1召川、在es安裝目錄的home目錄下找到對應的plugins目錄
2、cd到plugins目錄 然后解壓縮剛剛下載的ik分詞器的文件夾 并重命名為ik
3胸遇、重啟es ik分詞器安裝完成
ik分詞器自定義擴展字典
真實的業(yè)務場景中原生的ik分詞器的字典中不包含某些特定的詞匯荧呐,這個時候可以通過修改ik分詞器的配置 自定義擴展字典。
ik分詞器熱更新方法
上面的方式雖然能夠擴展字典纸镊,但是每次更新自定義詞典都需要重啟es, ik分詞目前支持熱更新