Elasticsearch6.x和7.x版本常用插件匯總


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

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM