ELK 設(shè)置定時(shí)清理腳本清理索引
809
2025-04-01
一、elasticsearch-分詞器
1.什么是分詞器
分詞器是elasticsearch中很重要的一個(gè)組件,用來(lái)將一段文本分析成一個(gè)一個(gè)的詞,Elasticsearch再根據(jù)這些詞去做倒排索引。
2.ElasticSearch分詞器類型
Elasticsearch 中內(nèi)置了一些分詞器,這些分詞器只能對(duì)英文進(jìn)行分詞處理,無(wú)法將中文的詞識(shí)別出來(lái)。所以ElasticSearch需要自定義中文分詞器。
2.1 ElasticSearch之內(nèi)置分詞器
2.2 ElasticSearch之IK分詞器
Elasticsearch中內(nèi)置的分詞器不能對(duì)中文進(jìn)行分詞,因此我們需要再安裝一個(gè)能夠支持中文的分詞器,IK分詞器就是個(gè)不錯(cuò)的選擇。
IK分詞器下載網(wǎng)址:https://github.com/medcl/elasticsearch-analysis-ik
注意:分詞器版本必須和ES版本一致
二、.NET Core ElasticSearch分詞器落地
1.創(chuàng)建項(xiàng)目
vs2022創(chuàng)建項(xiàng)目
2.下載Elasticsearch
-:https://www.elastic.co/downloads/elasticsearch
3.然后啟動(dòng)Elasticsearch
通過(guò)cmd執(zhí)行命令
./elasticsearch.bat
默認(rèn)地址:http://localhost:9200/
4、在項(xiàng)目中引入NEST
dotnet add package NEST
在項(xiàng)目中NEST連接Elasticsearch,通過(guò)NEST提供的API進(jìn)行添加商品數(shù)據(jù),然后在進(jìn)行模糊查詢。
三、ElasticSearch根據(jù)片段查詢出文檔
ElasticSearch根據(jù)片段查詢出文檔步驟如下:
1、先下載kibana。
Kibana是一個(gè)設(shè)計(jì)出來(lái)用于和Elasticsearch一起使用的開源的分析與可視化平臺(tái),可以用kibana 搜索、查看、交互存放在Elasticsearch索引里的數(shù)據(jù),使用各種不同的圖表、表格、地圖等展示高級(jí)數(shù)據(jù)分析與可視化,基于瀏覽器的接口使你能快速創(chuàng)建和分享實(shí)時(shí)展現(xiàn)Elasticsearch查詢變化的動(dòng)態(tài)儀表盤,讓大量數(shù)據(jù)變得簡(jiǎn)單,容易理解
注意:安裝kibana時(shí),必須先安裝elasticsearch且kibana的版本和elasticsearch的版本號(hào)必須一致
kibana下載網(wǎng)址:https://www.elastic.co/cn/downloads/kibana
2、然后配置kibana
kibana\config\kibana.yml配置文件,此處根據(jù)自己實(shí)際減壓后的路徑去找kibana.yml配置文件。
添加如下:
elasticsearch.hosts:["http://localhost:9200"] i18n.locale:"zh-CN"
3、然后進(jìn)入bin目錄直接cmd啟動(dòng):
kibana.bat
4、打開kibana,直接進(jìn)入開發(fā)者工具頁(yè)面
5、 然后通過(guò)分析器分析文本
GET products/_analyze { "text": "愚公搬代碼" }
即可得到被分詞后的效果。默認(rèn)使用是standard標(biāo)準(zhǔn)分析器實(shí)現(xiàn)
四、ElasticSearch Analyzer 分析器執(zhí)行原理
ElasticSearch 分詞時(shí)候主要做了如下三個(gè)事情:
字符過(guò)濾器 char_filter:過(guò)濾不必要的分詞符號(hào)
分詞器 tokenizer:實(shí)現(xiàn)分詞規(guī)則
詞單元過(guò)濾器 filter:實(shí)現(xiàn)自定義操作
五、ElasticSearch指定字段進(jìn)行分詞
1.先通過(guò)kibana查詢Index商品表對(duì)應(yīng)Mapping映射
GET products/_mapping
2.查看映射關(guān)系
發(fā)現(xiàn)string 都被默認(rèn)轉(zhuǎn)換成為了text文本。只有文本才能實(shí)現(xiàn)分詞
ElasticSearch無(wú)法修改映射。需要重新創(chuàng)建索引。就是數(shù)據(jù)庫(kù)
3.重新創(chuàng)建Index商品,然后指定映射。
PUT producs_0 { "mappings": { "properties": { "productTitle": { "type": "keyword" } } } }
4.遷移數(shù)據(jù)
POST _reindex { "source": { "index": "products" }, "dest": { "index": "products_0" } }
5.查詢映射關(guān)系
GET products_0/_mapping
然后在客戶端查詢數(shù)據(jù)
六、ElasticSearch進(jìn)行自定義分詞
1.先創(chuàng)建商品數(shù)據(jù)庫(kù)products_1
PUT mall_product_8 { "settings": { "analysis": { "analyzer": { "my_tony":{ "type": "custom", "char_filter": [ "html_strip"], "tokenizer": "standard", "filter":[ "lowercase"] } } }}, "mappings": { "properties": { "productTitle": { "type": "text", "analyzer": "my_tony" } } } }
2.然后在數(shù)據(jù)庫(kù)products_1中進(jìn)行測(cè)試
GET product_1/_analyze { "analyzer": "my_tony", "text": "p6架構(gòu)班TTEST11wqaaa" }
然后進(jìn)行數(shù)據(jù)讀寫
七.ElasticSearch進(jìn)行自定義分詞擴(kuò)展
1、先進(jìn)入到bin目錄,然后安裝elasticsearch-analysis-ik
elasticsearch-plugin.bat install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.1/elasticsearch-analysis-ik-7.10.1.zip
2、然后創(chuàng)建index數(shù)據(jù)庫(kù)products_2
PUT products_2 { "mappings": { "properties": { "productTitle": { "analyzer": "ik_max_word", "search_analyzer": "ik_smart" } } } }
3、然后進(jìn)行驗(yàn)證
GET mall_product_8/_analyze { "analyzer": "ik_max_word", "text": "p6架構(gòu)班" }
.NET Elasticsearch 分布式
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。