Elasticsearch Kibana (一)

一、官方文檔

elasticsearch官網:elasticsearch官網
elasticsearch源碼:elasticsearch源碼
ik分詞器: ik分詞器
ik分詞器下載:ik分詞器下載
elasticsearch 版本選擇:elasticsearch 版本選擇
官方推薦Elasticsearch和jdk對應關系:官方推薦Elasticsearch和jdk對應關系

在這里插入圖片描述
系統當前版本:
在這里插入圖片描述
注:如果系統配置 JAVA_HOME,那么使用系統默認的 JDK,如果沒有配置使用自帶的 JDK,一般建議使用系統配置的 JDK。系統目前使用的jdk版本是:11.0.16.1,elasticsearch-env文件中注明:環境中配置:ES_JAVA_HOME>JAVA_HOME>ES_HOME

二、數據初始化

因為數據量不大,所以初始化方式比較直接,若是數據量大的時候,考慮使用第三方
**Q1:**初始化索引,大數據量時:單條數據操作存儲至索引,報錯,錯誤日志如下:org.springframework.dao.DataAccessResourceFailureException: 30,000 milliseconds timeout on connection http-outgoing-0 [ACTIVE]; nested exception is java.lang.RuntimeException: 30,000 milliseconds timeout on connection http-outgoing-0 [ACTIVE] at org.springframework.data.elasticsearch.core.ElasticsearchExceptionTranslator.translateExceptionIfPossible(ElasticsearchExceptionTranslator.java:94)

**W1:**當Elasticsearch需要在每次保存后刷新時,持續保存操作,使其無響應。
官方解釋鏈接:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/indices-refresh.html
文檔提示刷新占用大量資源:在這里插入圖片描述
問題代碼:
每個數據組裝后,保存文檔,并刷新索引
效果:45w企業數據:2個多小時初始化完成
在這里插入圖片描述
方案一:
批量寫入,減少線程頻繁切換,單次批處理數據寫入后刷新一次,減少了刷新頻率
目前單次批處理數據為1000條,此數量可以再優化,數據條數一般是根據文檔的大小和服務器性能而定的,但是單次批處理的數據逐漸增加,當性能沒有提升時,把這個數據量作為最大值。
效果:45w企業數據:40分鐘初始化完成
方案二:
關閉刷新(Disable Refresh)是一種可以提高大量寫入操作性能的操作。關閉刷新將臨時禁止 Elasticsearch 自動刷新索引的操作,從而減少了寫入操作時的磁盤IO和刷新操作帶來的性能開銷。當需要大量寫入數據時,關閉刷新可以顯著提升索引的寫入性能。
GET 索引名稱
在這里插入圖片描述
默認刷新時間為1s
設置為不自動刷新,但是緩沖區滿的時候也會觸發refresh操作(例:企業數據達到42萬條左右會自動觸發刷新):

PUT /索引名稱/_settings
{
"refresh_interval": -1
}

刷新指定index的數據:

POST /索引名稱/_refresh

效果:45w企業數據:33分鐘初始化完成
在這里插入圖片描述
等數據初始化完成后,最后可以通過設置刷新時間的方式重新設置一個合適的刷新時間

三、快照、還原

在Elasticsearch中,快照備份是一種將索引和集群的狀態數據保存到可恢復的快照中的機制。通過創建快照,你可以在需要時恢復數據,或在不同的集群之間遷移數據。

方案一:
官網API方式:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/snapshot-restore-apis.html

第一步:
兩個單節點環境均在elasticsearch.yml中設置備份路徑,路徑自定義,兩個環境可不同備份路徑
環境A:path.repo: /backups/elasticsearch1   
環境B: path.repo: /backups/elasticsearch2 
配置后啟動環境A第二步:
在環境A對應的kibana中執行:
測試:
初始化:PUT company_index
POST company_index/_doc/1
{  "name":"小米手機"
}
GET company_index/_doc/11)創建快照存儲庫
PUT /_snapshot/companyku
{"type": "fs","settings": {"location": "/backups/elasticsearch1"}
}
(2)創建快照
PUT /_snapshot/companyku/snapshot_20230717?wait_for_completion=true
{
"indices": "company_index"
}第三步:
把環境A/backups/elasticsearch1路徑下生成的文件內容。直接拷貝到環境B/backups/elasticsearch2路徑下,啟動環境B的節點Es
在環境B對應的kibana中執行:
(1)創建快照存儲庫
PUT /_snapshot/companyku
{"type": "fs","settings": {"location": "/data/backups/elasticsearch2"}
}2)還原數據
POST /_snapshot/companyku/snapshot_20230717/_restore
{"indices": "company_index"
}注意:若提示索引已存在,則刪除當前已有的索引:DELETE company_index

方案二、Kibana
本地啟動kibana,打開網址:http://localhost:5601/app/management/data/snapshot_restore/repositories
Stack Management->Snapshot and Restore
elasticsearch.yml配置:path.repo: /backups/elasticsearch1

  • Repositories注冊存儲庫
  • Policies設置定時任務,最高頻:15分鐘
  • Snapshot定時任務觸發或者手動觸發任務,生成快照,在/backups/elasticsearch1路徑下
  • 新建一個節點,配置repo,將生成的快照復制到該路徑下,啟動節點,注冊同名存儲庫,自動出現快照數據,點擊恢復,選擇對應的索引,即可恢復。
  • 在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    定時任務配置備份頻率
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述

四、IK分詞

目前英文是按單詞分詞,假設有需要新增分詞詞語:英文字母分詞
ik分詞器是把ik下載后放置在下載的es的plugins目錄下,
ik增加新的分詞:elasticsearch-7.17.6\plugins\ik\config
config下增加新文件:wyd_ik.dic(名稱自定義)
wyd_ik.dic文件內容:

a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z

一行就是一個詞
在這里插入圖片描述
重新啟動es。

在這里插入圖片描述
看到啟動日志打印加載成功
查看效果:

GET _analyze
{"analyzer": "ik_max_word","text": ["WYD", "國企", "1"]
}

在這里插入圖片描述

五、 刪除索引的已有字段

官方文檔:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/docs-reindex.html

PUT m1
{"mappings" : {"properties" : {"_class" : {"type" : "keyword","index" : false,"doc_values" : false},"age" : {"type" : "integer"},"id" : {"type" : "integer"},"name" : {"type" : "text","analyzer" : "ik_max_word"}}},"settings" : {"index" : {"refresh_interval" : "1s","store" : {"type" : "fs"}}}
}POST m1/_doc
{  "id":1, "age":2,  
"name":"小花"
}POST  /m1/_update_by_query
{"script": {"lang": "painless","inline": "ctx._source.remove(\"age\")"},"query": {"match_all": {}}
}GET m1/_searchPUT m2
{"mappings" : {"properties" : {"_class" : {"type" : "keyword","index" : false,"doc_values" : false},"id" : {"type" : "integer"},"name" : {"type" : "text","analyzer" : "ik_max_word"}}},"settings" : {"index" : {"refresh_interval" : "1s","store" : {"type" : "fs"}}}
}POST _reindex
{"source": {"index": "m1"},"dest": {"index": "m2"}
}GET m2/_search

六、代碼示例

寫了關于elasticsearch常用的方法示例,分組查詢、分頁查詢、高亮查詢、新增、修改、刪除、地理位置查詢等方式
代碼示例:https://gitee.com/wyd-mayun/elasticsearch.git
注:
刪除大數據量的索引,需要等待一下,若刪除后,立即創建同名的索引,無法創建最新的索引,很可能是之前舊的索引結構

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/86000.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/86000.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/86000.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[linux] Ubuntu 24軟件下載和安裝匯總(自用)

經常重裝系統,備份下,有用的也可以參考。 安裝圖形界面 apt install ubuntu-desktop systemctl set-default graphical.target reboot 安裝chrome wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo apt insta…

分布變化的模仿學習算法

與傳統監督學習不同,直接模仿學習在不同時刻所面臨的數據分布可能不同.試設計一個考慮不同時刻數據分布變化的模仿學習算法 import numpy as np import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader, TensorDataset from…

arm-none-eabi-ld: cannot find -lm

arm-none-eabi-ld -Tuser/hc32l13x.lds -o grbl_hc32l13x.elf user/interrupts_hc32l13x.o user/system_hc32l13x.o user/main.o user/startup_hc32l13x.o -lm -Mapgrbl_hc32l13x.map arm-none-eabi-ld: cannot find -lm makefile:33: recipe for target link failed 改為在gcc…

【Python辦公】Excel文件批量樣式修改器

目錄 專欄導讀1. 背景介紹2. 項目概述3. 庫的安裝4. 核心架構設計① 類結構設計② 數據模型1) 文件管理2) 樣式配置5. 界面設計與實現① 布局結構② 動態組件生成6. 核心功能實現① 文件選擇與管理② 顏色選擇功能③ Excel文件處理核心邏輯完整代碼結尾專欄導讀 ?? 歡迎來到P…

QT的一些介紹

//雖然下面一行代碼進行widget和ui的窗口關聯,但是如果發生窗口大小變化的時候,里面的布局不會隨之變化ui->setupUi(this);//通過下面這行代碼進行顯示說明,讓窗口變化時,布局及其子控件隨之變化this->setLayout(ui->ver…

RISC-V向量擴展與GPU協處理:開源加速器設計新范式——對比NVDLA與香山架構的指令集融合方案

點擊 “AladdinEdu,同學們用得起的【H卡】算力平臺”,H卡級別算力,按量計費,靈活彈性,頂級配置,學生專屬優惠 當開源指令集遇上異構計算,RISC-V向量擴展(RVV)正重塑加速…

自動恢復網絡路由配置的安全腳本說明

背景 兩個文章 看了就明白 Ubuntu 多網卡路由配置筆記&#xff08;內網 外網同時通 可能有問題&#xff0c;以防萬一可以按照個來恢復 sudo ip route replace 192.168.1.0/24 dev eno8403 proto kernel scope link src <你的IP>或者恢復腳本! 如下 誤操作路由時&…

創建 Vue 3.0 項目的兩種方法對比:npm init vue@latest vs npm init vite@latest

創建 Vue 3.0 項目的兩種方法對比&#xff1a;npm init vuelatest vs npm init vitelatest Vue 3.0 作為當前主流的前端框架&#xff0c;官方提供了多種項目創建方式。本文將詳細介紹兩種最常用的創建方法&#xff1a;Vue CLI 方式 (npm init vuelatest) 和 Vite 方式 (npm in…

Java求職者面試指南:Spring, Spring Boot, Spring MVC, MyBatis技術點深度解析

Java求職者面試指南&#xff1a;Spring, Spring Boot, Spring MVC, MyBatis技術點深度解析 面試官與程序員JY的三輪提問 第一輪&#xff1a;基礎概念問題 1. 請解釋一下Spring框架的核心容器是什么&#xff1f;它有哪些主要功能&#xff1f; JY回答&#xff1a;Spring框架的…

【修復MySQL 主從Last_Errno:1051報錯的幾種解決方案】

當MySQL主從集群遇到Last_Errno:1051報錯后不要著急&#xff0c;主要有三種解決方案&#xff1a; 方案1: 使用GTID場景&#xff1a; mysql> STOP SLAVE;(2)設置事務號&#xff0c;事務號從Retrieved_Gtid_Set獲取 在session里設置gtid_next&#xff0c;即跳過這個GTID …

定位接口偶發超時的實戰分析:iOS抓包流程的完整復現

我們通常把“請求超時”歸結為網絡不穩定、服務器慢響應&#xff0c;但在一次產品灰度發布中&#xff0c;我們遇到的一個“偶發接口超時”問題完全打破了這些常規判斷。 這類Bug最大的問題不在于表現&#xff0c;而在于極難重現、不可預測、無法復盤。它不像邏輯Bug那樣能從代…

【網工】華為配置專題進階篇②

目錄 ■DHCP NAT BFD 策略路由 ▲掩碼與反掩碼總結 ▲綜合實驗 ■DHCP NAT BFD 策略路由 ▲掩碼與反掩碼總結 使用掩碼的場景&#xff1a;IP地址強相關 場景一&#xff1a;IP地址配置 ip address 192.168.1.1 255.255.255.0 或ip address 192.168.1.1 24 場景二&#x…

基于STM32電子密碼鎖

基于STM32電子密碼鎖 &#xff08;程序&#xff0b;原理圖&#xff0b;PCB&#xff0b;設計報告&#xff09; 功能介紹 具體功能&#xff1a; 1.正確輸入密碼前提下&#xff0c;開鎖并有正確提示&#xff1b; 2.錯誤輸入密碼情況下&#xff0c;蜂鳴器報警并短暫鎖定鍵盤&…

前端基礎知識CSS系列 - 14(CSS提高性能的方法)

一、前言 每一個網頁都離不開css&#xff0c;但是很多人又認為&#xff0c;css主要是用來完成頁面布局的&#xff0c;像一些細節或者優化&#xff0c;就不需要怎么考慮&#xff0c;實際上這種想法是不正確的 作為頁面渲染和內容展現的重要環節&#xff0c;css影響著用戶對整個…

判斷 NI Package Manager (NIPM) 版本與 LabVIEW 2019 兼容性

?判斷依據 1. 查閱 LabVIEW 2019 自述文件 LabVIEW 2019 自述文件中包含系統要求&#xff0c;可通過 NI 官網訪問。文件提到使用 NIPM 安裝&#xff0c;但未明確最低版本要求&#xff0c;需結合其他信息判斷。 2. 參考 NI 官方兼容性文檔 NI 官方文檔指出 LabVIEW 運行引擎與…

Django 安裝指南

Django 安裝指南 引言 Django 是一個高級的 Python Web 框架,用于快速開發安全且實用的網站。本文將詳細介紹如何在您的計算機上安裝 Django,以便您能夠開始使用這個強大的工具。 安裝前的準備 在開始安裝 Django 之前,請確保您的計算機滿足以下條件: 操作系統:Django…

Spring MVC參數綁定終極手冊:單多參對象集合JSON文件上傳精講

我們通過瀏覽器訪問不同的路徑&#xff0c;就是在發送不同的請求&#xff0c;在發送請求時&#xff0c;可能會帶一些參數&#xff0c;本文將介紹了Spring MVC中處理不同請求參數的多種方式 一、傳遞單個參數 接收單個參數&#xff0c;在Spring MVC中直接用方法中的參數就可以…

synchronized 做了哪些優化?

Java 中的 synchronized 關鍵字是保證線程安全的基本機制&#xff0c;隨著 JVM 的發展&#xff0c;它經歷了多次優化以提高性能。 1. 鎖升級機制&#xff08;鎖膨脹&#xff09; JDK 1.6 引入了偏向鎖→輕量級鎖→重量級鎖的升級機制&#xff0c;避免了一開始就使用重量級鎖&…

三甲醫院AI醫療樣本數據集分類與收集全流程節點分析(下)

3.3 典型案例分析 —— 以某三甲醫院為例 為了更深入地了解三甲醫院 AI 醫療樣本數據收集的實際情況,本研究選取了具有代表性的某三甲醫院作為案例進行詳細分析。該醫院作為區域醫療中心,在醫療技術、設備和人才方面具有顯著優勢,同時在醫療信息化建設和 AI 應用方面也進行…

設置程序開機自動啟動

在Windows系統中&#xff0c;有幾種方法可以將程序設置為開機自動啟動。下面我將介紹最常用的三種方法&#xff0c;并提供一個C#實現示例。 方法一&#xff1a;使用啟動文件夾&#xff08;最簡單&#xff09; 按下 Win R 鍵打開運行對話框 輸入 shell:startup 并回車 將你的…