ELK(Elasticsearch + Kibana)部署安裝使用

Windows服務下的安裝部署:

下載運行ES:

1,官網(wǎng)下載地址:https://www.elastic.co/cn/downloads/elasticsearch

? 注:右側(cè)選擇歷史版本,jdk1.8對應的版本是7.x的。

下載完以后進入bin目錄,輸入elasticsearch回車;或者直接雙擊 elasticsearch.bat 進行啟動。

? 注:請確認環(huán)境變量是否已經(jīng)配置成功

? 注:請確認java版本是否為ES對應版本

啟動以后瀏覽器輸入 http://localhost:9200/ 查看是否啟動成功,如下圖是成功的


2,下載對應版本的ik分詞器:https://github.com/medcl/elasticsearch-analysis-ik/releases

? 注:解壓到 es目錄下的plugins下 命名為ik

3,下載對應版本的Kibana:https://www.elastic.co/guide/en/kibana/current/install.html



Linux服務下的安裝部署:

1,創(chuàng)建網(wǎng)絡,需要es和kibana容器互聯(lián),在同一個網(wǎng)絡(可省略)

docker network create es-net?

2,將es.tar? 和 kibana.tar上傳到服務器,運行命令加載即可:

docker load -i es.tar

docker load -i kibana.tar

3,運行docker命令,部署單點es

======================================================================================================================

docker run -d \

--name es \

? ? -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \? ??????????????????? ?// 設置內(nèi)存大小

? ? -e "discovery.type=single-node" \? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ???// single-node單機模式

? ? -v es-data:/usr/share/elasticsearch/data \

? ? -v es-plugins:/usr/share/elasticsearch/plugins \

? ? --privileged \

? ? --network es-net \? ? ? ? ? ??? ???????????????????????????????????????????????????//?network:處在同一網(wǎng)絡 網(wǎng)絡名

? ? -p 9200:9200 \? ? ? ? ? ? ? ? ? ????????????????????????????????????????????????????? //http://127.0.0.1:9200:客戶訪問端口

? ? -p 9300:9300 \? ? ? ? ? ? ? ? ????????????????????????????????????????????????????? ? //?9300:es容器各個容器互聯(lián)端口

elasticsearch:7.12.1

=======================================================================================================================

命令解釋:

- `-e "cluster.name=es-docker-cluster"`:設置集群名稱

- `-e "http.host=0.0.0.0"`:監(jiān)聽的地址,可以外網(wǎng)訪問

- `-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"`:內(nèi)存大小

- `-e "discovery.type=single-node"`:非集群模式

- `-v es-data:/usr/share/elasticsearch/data`:掛載邏輯卷,綁定es的數(shù)據(jù)目錄

- `-v es-logs:/usr/share/elasticsearch/logs`:掛載邏輯卷,綁定es的日志目錄

- `-v es-plugins:/usr/share/elasticsearch/plugins`:掛載邏輯卷,綁定es的插件目錄

- `--privileged`:授予邏輯卷訪問權(quán)

- `--network es-net` :加入一個名為es-net的網(wǎng)絡中

- `-p 9200:9200`:端口映射配置

=======================================================================================================================

啟動成功:

3,運行docker命令,部署單點kibana

network:同es所處在的同一網(wǎng)絡

ELASTICSEAECH_HOSTS :es的名稱 ,端口

http://127.0.0.1:5601? ? ?:客戶訪問端口

啟動成功:

測試IK分詞器:ik_smart (智能切分,粗粒度)? ?ik_max_word(最細切分,細粒度)

使用命令: docker? volume? inspect es-plugins 找到目錄

將IK分詞器放進去

重啟es : docker restart? es

IK分詞器拓展詞庫,停用詞庫:

修改config文件中的?IKAnalyzer.cfg.xml 文件

在config文件目錄下添加擴展字典,停用字典

4,mapping屬性:詳見? ? ? http://www.itdecent.cn/p/01f489c46c38

實例:

像 tradeType、map 這兩個屬性屬于Object類型,在es中不必特殊指定類型,如下

es中的【nested】類型,特定用在某屬性是數(shù)組類型,而且該屬性在es結(jié)構(gòu)中必須要加上【nested】類型,否在在檢索、聚合時候就會出現(xiàn)報錯或查不到數(shù)據(jù)問題,以下:

es中的結(jié)構(gòu)如下:subjectList 便是數(shù)組類型,并且泛型是包裝類型,在es中都需要指定該字段是【nested】。

非常注意:如果某屬性的泛型是基本類型(比如:List< String >、List< Integer > )那es的類型可不是【nested】,而是keyword或Integer 這種。如下:

準備索引:

通過es控制臺或者postman都可以進行索引操作,類型mysql可視化工具對mysql數(shù)據(jù)庫表結(jié)構(gòu)操作類型,只不過,es對于創(chuàng)建后的索引的字段類型不可改變,如果一定要變更字段類型,就需要刪除索引重新創(chuàng)建,這就是為什么對于要插入的數(shù)據(jù)類型嚴格控制的原因。

查詢,刪除索引庫語法:

修改索引庫:索引庫和mapping一旦創(chuàng)建無法修改,但是可以添加新的字段,語法如下

文檔操作:

添加,查詢,刪除文檔

修改文檔:

全量修改:(上條數(shù)據(jù)修改后) 當索引(例如:1)存在,則是修改,不存在則是新增

局部修改:

創(chuàng)建索引注意點:

1,一個字段想要查詢其他字段的內(nèi)容可以用:copy_to

2,地理位置坐標:需要使用geo_point(代表橫縱坐標上的一個點)或 geo_shape(代表橫縱坐標上的一片區(qū)域,例如一條直線) ,加入橫縱坐標

RestClient操作索引庫

1,引入es的 RestHighLevelClient依賴:版本需和安裝的 es 保持一致

<dependency>

? ? <groupId>org.elasticsearch.client</groupId>

? ? <artifactId>elasticsearch-rest-high-level-client</artifactId>

? ? <version>7.12.1</version>

</dependency>

修改版本一致

酒店實體舉例創(chuàng)建,刪除,判斷索引是否存在

初始化連接地址:

酒店實體舉例:新增文檔,查詢文檔,更新文檔,刪除文檔


DSL查詢文檔

全文檢索查詢

精確查詢:term:根據(jù)詞條精確值查詢? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? range:根據(jù)值范圍查詢(gt :大于? ? lt:小于? ? ? gte:大于等于? ? ?lte:小于等于)

根據(jù)經(jīng)緯度查詢:

矩形范圍查詢:FIELD 對應的是 location字段

對應查詢例如:附近的人,酒店等~~~

復合查詢:將其他簡單查詢組合起來

相關(guān)性算分(了解)

搜索結(jié)果處理:排序,分頁,高亮

項目中使用:

1,導入amqp(RabbitMQ)依賴包,yaml文件中添加amqp的地址

生產(chǎn)者方:設置交換機,隊列,RoutingKey

綁定交換機和隊列:

數(shù)據(jù)聚合:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容