elasticsearch插件彙總 基於es 7.3版本試用。 一、安全插件 1、x-pack 包括安全(x-pack-security),監視(x-pack-watcher),警報(x-pack-monitoring),報表(x-pack-graph),Elasticsearch SQL(x-pa ...
elasticsearch插件彙總
基於es 7.3版本試用。
一、安全插件
1、x-pack
a、介紹
包括安全(x-pack-security),監視(x-pack-watcher),警報(x-pack-monitoring),報表(x-pack-graph),Elasticsearch SQL(x-pack-sql),跨集群複製(x-pack-ccr)、x-pack-upgrade、x-pack-rollup和機器學習(x-pack-ml)。7.x版本中,es的安全核心功能免費使用。
b、安裝
es7.x版本以預設安裝好x-pack。修改配置激活即可。
#在elasticsearch.yml最後添加 xpack.security.enabled: true xpack.security.audit.enabled: true #basic表示xpack使用基礎版license,否則無法啟動 xpack.license.self_generated.type: basic xpack.security.transport.ssl.enabled: true
重啟es, 執行
./elasticsearch-setup-passwords interactive
會引導設置各種密碼,包括elastic、kibana、apm_system、logstash_system、beats_system、remote_monitoring_user
c、使用
預設用戶名elastic,例如
#curl請求 curl -XGET -u "elastic:123456" http://192.0.0.1:9200/_cat/indices?v #http請求 header添加 key=Authorization value = Basic ZWxhc3RpYzoxMjM0NTY=
將username:secret進行base64加密得到 dXNlcm5hbWU6c2VjcmV0 然後前面加上一個Basic和空格, 構造一個字元串形如: Basic dXNlcm5hbWU6c2VjcmV0 然後添加到http的header中Authorization作為鍵,該字元串為值。
若沒添加Authorization,restful請求時報錯,返回如security_exception、401
d、結合kibana
es啟用x-pack後,kibana會新增用戶和角色管理菜單。kibana登錄需要輸入密碼
e、es6.x版本使用x-pack
在es6.x中使用安全功能,需要在kibana中升級license。購買一個icense或申請一個30天的試用。 在 Kibana 中訪問 Management -> Elasticsearch -> License Management。選擇試用 然後在elasticsearch.yml添加如下配置
xpack.security.enabled: true xpack.ml.enabled: true xpack.license.self_generated.type: trial
重啟es
在es的bin下執行如下命令,設置密碼
elasticsearch-setup-passwords interactive
在kibana.yml中配置
elasticsearch.username: "elastic" elasticsearch.password: "123456"
重啟kibana,獲得試用30天
二、分詞插件
1、ik分詞
a、介紹
最流行的分詞插件
b、安裝
cd /bin ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.3.0/elasticsearch-analysis-ik-7.3.0.zip
c.使用
i.創建索引
1.create a index curl -XPUT http://localhost:9200/index 2.create a mapping curl -XPOST http://localhost:9200/index/_mapping -H 'Content-Type:application/json' -d' { "properties": { "content": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_smart" } } }'
analyzer說明: ik_smart: 會做最粗粒度的拆分 ik_max_word: 會將文本做最細粒度的拆分。
ii.分詞查詢
curl -XPOST http://localhost:9200/index/_search -H 'Content-Type:application/json' -d' { "query" : { "match" : { "content" : "中國" }}, "highlight" : { "pre_tags" : ["<tag1>", "<tag2>"], "post_tags" : ["</tag1>", "</tag2>"], "fields" : { "content" : {} } } }
2、pinyin
a、介紹
pinyin插件能夠將文檔和查詢條件在漢字和拼音間轉換
b、安裝
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v7.3.0/elasticsearch-analysis-pinyin-7.3.0.zip
c.使用
i.創建索引
PUT /medcl/ { "settings" : { "analysis" : { "analyzer" : { "pinyin_analyzer" : { "tokenizer" : "my_pinyin" } }, "tokenizer" : { "my_pinyin" : { "type" : "pinyin", "keep_separate_first_letter" : false, "keep_full_pinyin" : true, "keep_original" : true, "limit_first_letter_length" : 16, "lowercase" : true, "remove_duplicated_term" : true } } } } }
ii.查詢
GET /medcl/_analyze { "text": ["劉德華"], "analyzer": "pinyin_analyzer" }
3、smartcn
a、介紹
中科院分詞器,和ik類似。不同點是smartcn無法自定義詞庫
b、安裝
./elasticsearch-plugin install https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-smartcn/analysis-smartcn-7.3.0.zip
c.使用
類似ik tokenizer為smartcn
4、icu
a、介紹
Elasticsearch的 ICU 分析器插件 使用 國際化組件 Unicode (ICU) 函數庫(詳情查看 site.project.org)提供豐富的處理 Unicode 工具。 這些包含對處理亞洲語言特別有用的 icu_分詞器 ,還有大量對除英語外其他語言進行正確匹配和排序所必須的分詞過濾器。
b、安裝
./elasticsearch-plugin install analysis-icu
5、ik或smart與pinyin組合使用
es分析器實際上是三個功能的封裝,字元過濾器->分詞器->token過濾器,按順序執行 創建自定義分析器,格式如下
PUT localhost:9200/mytest { "setting": { "analysis": { "char_filter": { 自定義的字元過濾器 }, "tokenizer": { 自定義的分詞器 }, "filter": { 自定義的token過濾器 }, "analyzer": { 自定義的分析器,可以將上面的char_filter、tokenizer、filter用不同的組合拼起來,形成不同的分析器 } } } }
例如ik和拼音組合
http://localhost:9200/article_ik_pinyin { "settings": { "number_of_shards": "6", "number_of_replicas": "1", "index":{ "analysis": { "analyzer": { "ik_pinyin_analyzer": { "type":"custom", "tokenizer": "ik_max_word", "filter": "pinyin_filter" } }, "filter":{ "pinyin_filter":{ "type": "pinyin", "keep_first_letter": false } } } } }, "mappings": { "article_ik_pinyin": { "properties": { "id": { "type": "text" }, "title": { "analyzer": "ik_pinyin_analyzer", "type": "text" } } } } }
三、文本解析插件
4、ingest attachment plugin
a、介紹
這個是基於Apache 文本擴展庫Tika插件之上開發的一款適合elasticsearch文本解析插件。在ES5之前使用的是mapper-accachment。ElasticSearch只能處理文本,不能直接處理文檔。
Ingest-Attachment是一個開箱即用的插件,替代了較早版本的Mapper-Attachment插件,使用它可以實現對(PDF,DOC,EXCEL等)主流格式文件的文本抽取及自動導入。Elasticsearch5.x新增一個新的特性IngestNode,此功能支持定義命名處理器管道pipeline,pipeline中可以定義多個處理器,在數據插入ElasticSearch之前進行預處理。 而Ingest Attachment Processor Plugin提供了關鍵的預處理器attachment,支持自動對入庫文檔的指定欄位作為文檔文件進行文本抽取。
由於ElasticSearch是基於JSON格式的文檔資料庫,所以附件文檔在插入ElasticSearch之前必須進行Base64編碼。
b、安裝
./elasticsearch-plugin install ingest-attachment
四、SQL支持
1、x-pack-sql
es7.x版本的x-pack自帶es sql
a、使用例如
http://localhost:9200/_sql { "query": "SELECT * FROM article_ik_pinyin" }
2、elasticsearch-sql
a、介紹
支持到es6.8
https://github.com/NLPchina/elasticsearch-sql/
b、安裝
./elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.5.4.0/elasticsearch-sql-6.5.4.0.zip
c、使用
curl -X GET "localhost:9200/_sql" -H 'Content-Type: application/json' -d'select * from article_smartcn_pinyin limit 10'
五、可視化
1、kibana
a、介紹
es官方提供的可視化套件,集成了es開發工具、報表、儀錶盤、數據挖掘等功能https://www.elastic.co/guide/en/kibana/current/targz.html
kibana6.7+才支持漢化
b、安裝
kibana安裝版本要和es對應
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.3.0-linux-x86_64.tar.gztar -xzvf kibana-7.3.0-linux-x86_64.tar.gz
修改config/kibana.yml i18n.locale: "zh-CN" server.port: 5601 server.host: "內網ip" ibana.index: ".kibana"
elasticsearch.hosts: ["http://192.168.0.1:9200"]
es有配置x-pack的話修改 elasticsearch.username: "elastic" elasticsearch.password: "123456"
啟動
./bin/kibana