ELK 設置定時清理腳本清理索引
1003
2025-03-31
elasticsearch 索引模塊-正排索引
elasticsearch 索引模塊-倒排索引
ElasticSearch 索引模塊-重要組成部分
索引分析模塊Analyzer:
https://www.elastic.co/guide/en/elasticsearch/reference/5.x/analysis.html
1)分解器(Tokenizer) :
2)詞元過濾器(token filters)
索引建立模塊Indexer
1)在建立索引過程中,分析處理過的文檔將被加入到索引列表。事實上,Lucene為此僅提供了一個非常簡單的API,而后自行內生地完成了此過程的所有功能。
ElasticSearch 索引模塊-索引過程(1)
ElasticSearch 索引模塊-索引過程(2)
ElasticSearch 索引模塊-索引過程(3)
ElasticSearch 索引模塊-索引和搜索
ElasticSearch 索引模塊-停用詞
有些詞在文本中出現的頻率非常高,但是對文本所攜帶的信息基本不產生影響,這樣的詞我們稱之為停用詞。
英文
a、an、the、of and so on
http://www.ranks.nl/stopwords/chinese-stopwords
中文
的、了、著、是等標點符號
http://www.ranks.nl/stopwords
用法:
1)文本經過分詞之后,停用詞通常被過濾掉,不會被進行索引。
2)在檢索的時候,用戶的查詢中如果含有停用詞,檢索系統也會將其過濾掉
優點:
1)排除停用詞可以加快建立索引的速度,減小索引庫文件的大小。
ElasticSearch 索引模塊-中文分詞器
單字分詞:
比如:”我們是中國人”
效果:“我”“們”“是”“中”“國”“人”
二分法分詞:
比如:”我們是中國人”
效果:“我們”“們是”“是中”“中國”“國人”
詞庫分詞:
按某種算法構造詞,然后去匹配已建好的詞庫集合,如果匹配到就切分出來成為詞語。通常詞庫分詞被認為是最理想的中文分詞算法。
ElasticSearch 索引模塊-常見的中文分詞器
StandardAnalyzer(單字分詞)
能夠根據空格、符號、數字、字母、E-mail地址、IP地址以及中文字符的分析處理分割原始的文本信息。但中文文字沒有完成中文分詞的功能,只是按照單個的漢字進行了分割。
CJKAnalyzer(二分法)
專門用于中文文檔處理的分析器,可以實現中文的多元切分和停用詞過濾。
IKAnalyzer(詞庫分詞)
當前比較流行中文分詞器,對中文支持較好。屬于第三方插件,需要安裝
測試默認的分詞對中文的支持:
curl -XPOST http://master:9200/djt/user/3/_update -d '{"doc":{"name":"我們是中國人,xxx是我們的"}}'
curl -XPOST 'http://master:9200/djt/user/_search' -d '{"query" : { "match" : { "name" : "中國人" }}}'
ElasticSearch 索引模塊-集成IK中文分詞插件
下載ES的IK插件:
https://github.com/medcl/elasticsearch-analysis-ik
使用maven對下載的插件進行源碼編譯
mvn clean package –DskipTests
拷貝和解壓release下的文件: target/releases/elasticsearch-analysis-ik-*.zip 到你的 elasticsearch 插件目錄:ES_HOME/plugins/ik
重啟ElasticSearch服務
測試分詞效果:
curl 'http://master:9200/djt/_analyze?analyzer=ik_max_word&pretty=true' -d
'{"text":"我們是中國人"}'
curl 'http://master:9200/djt/_analyze?analyzer=ik_smart&pretty=true' -d
'{"text":"我們是中國人"}'
ElasticSearch 索引模塊-自定義IK詞庫:
創建自定義詞庫
首先在ik插件的config/custom目錄下創建一個文件djt.dic,在文件中添加詞語即可,每一個詞語一行。
修改ik的配置文件IKAnalyzer.cfg.xml
將djt.dic添加到ik的配置文件中即可:
vi config/IKAnalyzer.cfg.xml
custom/mydict.dic;custom/single_word_low_freq.dic;custom/djt.dic;
重啟ElasticSearch服務
測試分詞效果:
curl 'http://master:9200/djt/_analyze?analyzer=ik_max_word&pretty=true' -d '{"text":"藍瘦香菇"}'
curl 'http://master:9200/djt/_analyze?analyzer=ik_smart&pretty=true' -d '{"text":"藍瘦香菇"}'
ElasticSearch 索引模塊-熱更新IK詞庫
部署http服務,安裝tomcat
1)切換到
/home/hadoop/app/apache-tomcat-7.0.67/webapps/ROOT
2)新建熱詞文件
vi hot.dic
么么噠
3)需正常訪問
http://192.168.2x.210:8080/hot.dic
修改ik插件的配置文件:
vi /home/hadoop/app/elasticsearch-2.4.0/plugins/ik/config/ik/IKAnalyzer.cfg.xml 添加如下內容:
http://192.168.20.21x:8080/hot.dic
分發修改后的配置到其他es節點
重啟es,可以看到加載熱詞庫
測試動態添加熱詞
對比添加熱詞之前和之后的變化
url 'http://master:9200/djt/_analyze?analyzer=ik_max_word&pretty=true' -d
'{"text":"老司機"}'
搜索引擎 全文檢索 Elasticsearch
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。