ElasticSearch 自定義分析器

2021-09-28 20:55:47 字數 1597 閱讀 7903

elasticsearch的分析器實際上是將三個功能封裝在一起,這三個功能按照順序執行,而這三個功能都是能自定義的

字元過濾器 (char_filter)

首先,字串按順序通過每個字元過濾器,他們的任務是在分詞前整理字串,

乙個字元過濾器可以用來去掉html,或者將&轉化成and

分詞器 (tokenizer)

其次,字串被分詞器分為單個的詞條,乙個簡單的分詞器遇到空格和標點的時候,可能會將文字拆分成詞條。

hello how are you?會被es預設的分詞器standard分成hellohowareyou

token 過濾器 (filter)

最後,詞條按順序通過每個token過濾器,這個過程可能會改變詞條(quick -> quick)、刪除詞條(a、an、and、the.…)、增加詞條(jumpleap這種同義詞)

格式:

put 127.0

.0.1

:9200

/mytest

,"tokenizer":,

"filter":,

"analyzer":}

}}

具體例項:

put 127.0

.0.1

:9200

/mytest

,"***":,

"yyy":}

,"filter":}

,"analyzer":}

}},:

}}}}

分析器主要有兩種情況會被使用,一種是插入文件時,將text型別的字段做分詞然後插入倒排索引,第二種就是在查詢時,先對要查詢的text型別的輸入做分詞,再去倒排索引搜尋

如果想要讓 索引 和 查詢 時使用不同的分詞器,elasticsearch也是能支援的,只需要在字段上加上search_analyzer引數

在索引時,只會去看字段有沒有定義analyzer,有定義的話就用定義的,沒定義就用es預設的

在查詢時,會先去看字段有沒有定義search_analyzer,如果沒有定義,就去看有沒有analyzer,再沒有定義,才會去使用es預設的

具體例項:

put 127.0

.0.1

:9200

/mytest

,"name":}

}}}

Elasticsearch 自定義多個分析器

1.1分析器 analyzer elasticsearch 無論是內建分析器還是自定義分析器,都由三部分組成 字元過濾器 character filters 分詞器 tokenizer 詞元過濾器 token filters 1.2 分析器analyzer工作流程 input text charac...

elasticsearch配置詳解

elasticsearch的config資料夾裡面有兩個配置檔案 elasticsearch.yml和logging.yml,第乙個是es的基本配置檔案,第二個是日誌配置檔案,es也是使用log4j來記錄日誌的,所以logging.yml裡的設定按普通log4j配置檔案來設定就行了。下面主要講解下e...

誰在使用Elasticsearch

github github使用elasticsearch搜尋20tb的資料,包括13億的檔案和1300億行的 這個不用介紹了吧,碼農們都懂的,github在2013年1月公升級了他們的 搜尋,由solr轉為elasticsearch,目前集群規模為26個索引儲存節點和8個客戶端節點 負責處理搜尋請求...