Elasticsearch 自定義多個分析器

2021-09-28 21:16:45 字數 1882 閱讀 5209

1.1分析器(analyzer)

elasticsearch 無論是內建分析器還是自定義分析器,都由三部分組成:字元過濾器(character filters)、分詞器(tokenizer)、詞元過濾器(token filters)。

1.2 分析器analyzer工作流程

input text=>character filters(如果有多個,按順序應用)=>tokenizer=>token filters(如果有多個,按順序應用)=>output token

字元過濾器(character filters)

字元過濾器:對原始文字預處理,如去除html標籤,」&」轉成」and」等。

注意:

乙個分析器同時有多個字元過濾器時,按順序應用。

分詞器(tokenizer)

分詞器:將字串分解成一系列的詞元token。如根據空格將英文單詞分開。

詞元過濾器(token filters)

詞元過濾器:對分詞器分出來的詞元token做進一步處理,如轉換大小寫、移除停用詞、單複數轉換、同義詞轉換等。

注意:

乙個分析器同時有多個詞元過濾器時,按順序應用。

1.3 分析器analyze api的使用

分析器analyze api可驗證分析器的分析效果並解釋分析過程。

get _analyze 

2.1 建立索引並自定義多個分析器

這裡對乙個索引同時定義了多個分析器:

put my_index

,"my_charfilter2":}

,"tokenizer":,

"my_tokenizer2":}

,"filter":,

"my_tokenfilter2":}

,"analyzer":,

"my_analyzer2":}

}}}

2.2 驗證索引my_index的多個分析器

驗證分析器my_analyzer1分析效果:

get /my_index/_analyze

#返回結果,,

,,,,

]}

驗證分析器my_analyzer2分析效果:

get /my_index/_analyze

#返回結果,]

}

}}

,"my_field2":}

}}}建立文件

put my_index/my_type/

1query-mathch全文檢索

查詢時,es會根據字段使用的分析器進行分析,然後檢索。

#查詢my_field2欄位包含ip:

192.168

.113

.1的文件

get my_index/_search}}

#返回結果

,"hits":}]}}

ElasticSearch 自定義分析器

elasticsearch的分析器實際上是將三個功能封裝在一起,這三個功能按照順序執行,而這三個功能都是能自定義的 字元過濾器 char filter 首先,字串按順序通過每個字元過濾器,他們的任務是在分詞前整理字串,乙個字元過濾器可以用來去掉html,或者將 轉化成and。分詞器 tokenize...

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個客戶端節點 負責處理搜尋請求...