一、官方文档

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 并回车 将你的…