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

来源:https://www.cnblogs.com/yobit/archive/2019/08/19/11376453.html
-Advertisement-
Play Games

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

  

 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ```sql declare @TableName sysname = 'TableName' declare @Result varchar(max) = 'public class ' + @TableName + ' {' select @Result = @Result + ' public... ...
  • 讀取: 1) 客戶端調用 DistributedFileSystem 的 Open() 方法打開文件。2) DistributedFileSystem 用 RPC 連接到 NameNode,請求獲取文件的數據塊的信息;NameNode 返迴文件的部分或者全部數據塊列表;對於每個數據塊,NameNod ...
  • 1、資料庫的ACID 在資料庫中,事務是要滿足ACID的,即A: 原子性、C:一致性、I:隔離性、D:持久性。其中隔離性是最放鬆的一個,可以利用資料庫鎖的機制或者版本並控制機制獲取更高的隔離級別,但是隨著隔離級別的提高,數據的併發能力有所下降。因此如何在並行和隔離性之間做一個權衡是一個至關重要的問題 ...
  • 通過https://www.cnblogs.com/tree1123/p/11243668.html 已經對consumer有了一定的瞭解。producer比consumer要簡單一些。 一、舊版本producer 0.9.0.0版本以前,是由scala編寫的舊版本producer。 入口類:kaf ...
  • 在業務處理需要使用new Date()來更新時間類型的欄位時,資料庫會對時間類型進行四捨五入處理,如果new Date()的更新時間與原時間間隔太短,資料庫進行四捨五入之後,認為值沒有變化,從而不更新數據 導致業務失敗。 ...
  • 最近使用數據泵(DataPump)比較多,遇到了奇奇怪怪的問題,似乎Apply了補丁PSU 10.2.0.5.180717後,DataPump的問題就格外多。如下所示: expdp system/xxx DIRECTORY=DUMPDIR DUMPFILE=xxxx.dmp TABLES=xxxx.... ...
  • 相對於易用性很差Apache Hadoop,其他商業版Hadoop的性能易用性都有更好的表現,如Cloudera、Hortonworks、MapR以及國產的星環,下麵使用CDH(Cloudera Distribution Hadoop)快速體驗下。首先從,從Cloudera官網下載部署好的虛擬機環境... ...
  • 2019-08-19T09:27:33.225584+08:00Slave encountered ORA-27090 exception during crash recoveryRecovery slave process is holding some recovery locks. Kill ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...