当前位置: 首页 > news >正文

ES 8.x开始(docker-compose安装、kibana使用、java操作)

学习文档地址


一、Docker安装


这里使用docker-compose来安装,方便后续迁移,Elasticserach和kibina一起安装。


1、创建安装目录

  • config
  • data
  • plugins

2、配置文件


配置文件有两个,一个是ES的配置文件,一个docker-compose的配置文件


2-1、es配置文件(放config目录下)


下面的配置文件需要把IP修改为自己的本级IP network.publish_host

# 集群名称
cluster.name: xdx-es
# 节点名称
node.name: es-node-1
# 绑定host,0.0.0.0代表当前节点的ip
network.host: 0.0.0.0
# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址(本机ip),修改成自己ip
network.publish_host: 192.168.2.18
# 设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
# transport.tcp.port: 9300
# 是否支持跨域,默认为false
http.cors.enabled: true
# 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.allow-origin: "*"
# 表示这个节点是否可以充当主节点
# node.master: true
# 是否充当数据节点
# node.data: true
# 所有主从节点ip:port 
# discovery.seed_hosts: ["192.168.2.18:9300"]  #本地只有一个节点,无法正常启动,先注释
# 这个参数决定了在选主过程中需要 有多少个节点通信  预防脑裂 N/2+1
# discovery.zen.minimum_master_nodes: 1
#初始化主节点
#cluster.initial_master_nodes: ["es-node-1"]
# 内存交换
bootstrap.memory_lock: true
# 关闭认证授权
xpack.security.enabled: false

2-2、docker-compose

version: '3.0'
services:elasticsearch:image: elasticsearch:8.3.2container_name: elasticsearch8.3.2hostname: elasticsearch8.3.2privileged: truetty: truerestart: unless-stoppedenvironment:- TZ=Asia/Shanghai- "ES_JAVA_OPTS=-Xms256m -Xmx256m"- discovery.type=single-nodeports:- "9200:9200"networks:- es_networkvolumes:- ./data/:/usr/share/elasticsearch/data- ./plugins:/usr/share/elasticsearch/plugins- ./config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.ymlkibana:image: kibana:8.3.2container_name: kibana8.3.2hostname: kibana8.3.2restart: alwaysprivileged: truetty: true# volumes:# - ./etc/localtime:/etc/timezone# - ./etc/localtime:/etc/localtimeenvironment:- TZ=Asia/Shanghai- I18N_LOCALE=zh-CN- XPACK_GRAPH_ENABLED=true- TIMELION_ENABLED=true- XPACK_MONITORING_COLLECTION_ENABLED="true"ports:- "5601:5601"links:- elasticsearch:elasticsearchdepends_on:- elasticsearchnetworks:- es_network
networks:es_network:driver: bridge

完整目录如下:

在这里插入图片描述


2-3、启动ES


在ES安装目录下运行 docker-compose up -d

在浏览器输入 http://localhost:9200/ 看到如下JSON,ES安装完成

在这里插入图片描述


在浏览器输入 http://localhost:5601/ 看到如下界面,Kibina 安装完成

在这里插入图片描述


二、使用Kibana操作ES


其实可以简单把ES中的索引(index)理解成表,那对于表的操作,肯定就是创建表、增删字段,以及对表中数据的增删改查。

Kibana提供了操作ES的控制台,通过如下路径进入控制台

在这里插入图片描述


1、index 操作

1-1、创建一个索引


创建一个名为my-index-two 的索引,里面有三个字段

  1. 文本类型的 name
  2. 数字类型的 age
  3. 数组类型的 tags
PUT /my-index-two
{"settings": {"number_of_shards": 1,"number_of_replicas": 0},"mappings": {"properties": {"name": { "type": "text" },"age": { "type": "integer" },"tags":{"type": "text","fields": {"keyword":{"type": "keyword","ignore_above": 256}}}}}
}

1-2、为索引新增一个字段

PUT /my-index-two/_mapping
{"properties": {"conutry": {"type": "text"}}
}

1-3、查看索引信息

# 查看索引信息
GET /_cat/indices/my-index-one?v&pretty# 查看settings信息
GET /my-index-one/_settings# 查看_mapping信息
GET /my-index-one/_mapping

在这里插入图片描述


2、数据操作


2-1、为索引文档新增一条数据


my-index-two 索引,添加一条 id = 2,的数据

# PUT /index_name/_doc/_idPUT /my-index-two/_doc/2
{"name": "李四","age": "20","conutry": "java","tags": ["xxx", "你好", "zzz"]
}

在这里插入图片描述


2-2、查询索引中的数据


查询 my-index-two 索引中,id = 2,的数据

GET /my-index-two/_doc/2

在这里插入图片描述


除了用id精准匹配,使用ES更多的是做高亮搜索,比如想要搜索 tags中带 的标签

GET /my-index-two/_search
{"query": {"match": {"tags": {"query": "你","fuzziness": "AUTO"}}},"highlight": {"fields": {"tags": {}}}
}

在这里插入图片描述


默认它的高亮是用 <em> </em> 标签,也可以改变它使用自定义标签

GET /my-index-two/_search
{"query": {"match": {"tags": {"query": "你","fuzziness": "AUTO"}}},"highlight": {"fields": {"tags": {"pre_tags": ["<b>"],"post_tags": ["</b>"]}}}
}

在这里插入图片描述


2-3、删除索引中的数据


# 删除文档id为 1 的数据
DELETE /my-index-two/_doc/1# 删除 name中带有 三 的数据
POST /my-index-two/_delete_by_query
{"query": {"term": {"name": "三"}}
}

在这里插入图片描述


三、使用Java操作ES


3-1、引入依赖


非SpringBoot项目使用

<dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>8.3.3</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.3</version>
</dependency>
<!--It may happen that after setting up the dependencies, your application fails with ClassNotFoundException: jakarta.json.spi.JsonProvider.-->
<dependency><groupId>jakarta.json</groupId><artifactId>jakarta.json-api</artifactId><version>2.1.1</version>
</dependency>

SpringBoot 项目使用

<dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>8.3.3</version>
</dependency>
<!--It may happen that after setting up the dependencies, your application fails with ClassNotFoundException: jakarta.json.spi.JsonProvider.-->
<dependency><groupId>jakarta.json</groupId><artifactId>jakarta.json-api</artifactId><version>2.1.1</version>
</dependency>

3-2、CRUD

package com.xdx.cv.controller;import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.elasticsearch.core.*;
import co.elastic.clients.elasticsearch.core.search.Hit;
import co.elastic.clients.json.jackson.JacksonJsonpMapper;
import co.elastic.clients.transport.ElasticsearchTransport;
import co.elastic.clients.transport.rest_client.RestClientTransport;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;import java.io.IOException;
import java.util.List;public class Test {public static void main(String[] args) throws IOException {// 创建连接RestClient restClient = RestClient.builder(new HttpHost("127.0.0.1", 9200)).build();ElasticsearchTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper());ElasticsearchClient elasticsearchClient  = new ElasticsearchClient(transport);System.out.println("elasticsearchClient = " + elasticsearchClient);XdxTest build = XdxTest.builder().age(3).conutry("xxx").name("xxx").build();// 删除数据DeleteResponse deleteResponse = elasticsearchClient.delete(s -> s.index("my-index-two").id(build.age.toString()));System.out.println("删除结果: " + deleteResponse.result());// 插入数据IndexResponse indexResponse = elasticsearchClient.index(s -> s.index("my-index-two").id(build.age.toString()).document(build));System.out.println("新增文档结果: " + indexResponse.result());// 构建修改文档的请求XdxTest buildTwo = XdxTest.builder().age(3).conutry("xxxTwo").name("xxxTwo").build();UpdateResponse<XdxTest> updateResponse = elasticsearchClient.update(e -> e.index("my-index-two").id(build.age.toString()).doc(buildTwo),XdxTest.class);System.out.println("修改文档结果:" + updateResponse.result());// 基于id查询数据GetResponse<XdxTest> getResponse = elasticsearchClient.get(s -> s.index("my-index-two").id("2"),XdxTest.class);System.out.println("基于id查询结果: " + getResponse.source().getConutry());// 高亮查询SearchResponse<XdxTest> response = elasticsearchClient.search(s -> s.index("my-index-two").query(q -> q.term(t -> t.field("name").value("四"))).highlight(h -> h.fields("name", f -> f.preTags("<font color='red'>").postTags("</font>"))).source(source -> source.filter(f -> f.includes("name","id").excludes(""))),XdxTest.class);List<Hit<XdxTest>> hits = response.hits().hits();System.out.println("高亮查询结果" + hits.get(0).highlight().get("name"));restClient.close();}@Data@AllArgsConstructor@NoArgsConstructor@Builderpublic static class XdxTest {private String name;private Integer age;public String conutry;public List<String> tags;}
}

执行结果

elasticsearchClient = co.elastic.clients.elasticsearch.ElasticsearchClient@3d36e4cd
删除结果: Deleted
新增文档结果: Created
修改文档结果:Updated
基于id查询结果: java
高亮查询结果[<font color='red'></font>]

相关文章:

ES 8.x开始(docker-compose安装、kibana使用、java操作)

学习文档地址 一、Docker安装 这里使用docker-compose来安装&#xff0c;方便后续迁移&#xff0c;Elasticserach和kibina一起安装。 1、创建安装目录 configdataplugins 2、配置文件 配置文件有两个&#xff0c;一个是ES的配置文件&#xff0c;一个docker-compose的配置文件 …...

有了倾斜摄影,如何搭建一座智慧城市?

随着无人机航测、倾斜摄影等全新一代测绘信息技术方法的发展&#xff0c;可以迅速搜集制作精细化的城市三维模型&#xff0c;搭建城市地理信息基础服务架构。 近期都在重点关注的“智慧城市”究竟是什么&#xff0c;有什么重大作用&#xff0c;同时又面临着什么难关&#xff0c…...

设计测试用例的具体方法总结

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️白马沉河共歃誓&#xff0c;怒涛没城亦不悔 ☁️基于需求进行测试用例的设计 基…...

计算机毕业设计|基于SpringBoot+MyBatis框架的仿天猫商城购物系统设计与实现

计算机毕业设计|基于SpringBootMyBatis框架的仿天猫商城购物系统设计与实现 迷你仿天猫商城是一个基于SSM框架的综合性B2C电商平台&#xff0c;需求设计主要参考天猫商城的购物流程&#xff1a;用户从注册开始&#xff0c;到完成登录&#xff0c;浏览商品&#xff0c;加入购物…...

JAXB的XmlValue注解

XmlValue注解用在Java属性、或者方法上。它可以使得映射到XML Schema中的Java类具有一个simpleContent 或者simpleType。 一个Java类中最多只能有一个属性被XmlValue注解。 如果被XmlValue注解的JavaBean属性是Java类中唯一映射到XML的成员&#xff0c;那么该Java类将会被映射…...

Git版本管理(05) git仓库迁移(保留原来记录分支体系)

说明&#xff1a;本文主要是一次git迁移仓库的实战记录。 1 迁移前的准备 仓库迁移前&#xff0c;需要将所有有必要的分支checkout到本地&#xff08;想要转移到新仓库的分支就都 checkout一遍&#xff09;&#xff0c;接下来将old仓库从远程仓库克隆到本地&#xff1a; $git…...

科技与教育:未来教育的新趋势

在21世纪&#xff0c;科技的快速发展正在深刻地改变教育行业。从在线学习平台到虚拟现实教室&#xff0c;科技为教育带来了革命性的变化。本文将探讨科技如何影响现代教育&#xff0c;并预测未来教育的发展趋势。 一、科技在教育中的应用 在线学习平台&#xff1a;通过平台如C…...

E云管家微信群聊机器人开发

请求URL&#xff1a; http://域名地址/modifyGroupRemark 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明wId是String登录实例标识chatRo…...

CVE-2023-27524:Apache Superset未授权访问漏洞复现

文章目录 ​Apache Superset 未授权访问漏洞(CVE-2023-27524)复现0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.漏洞复现 0x06 修复建议 ​Apache Superset 未授权访问漏洞(CVE-2023-27524)复现 0x01 前言 免责声明&#xff1a;请勿利用文…...

机器学习——多元线性回归升维

机器学习升维 升维使用sklearn库实现特征升维实现天猫年度销量预测实现中国人寿保险预测 升维 定义&#xff1a;将原始的数据表示从低维空间映射到高维空间。在线性回归中&#xff0c;升维通常是通过引入额外的特征来实现的&#xff0c;目的是为了更好地捕捉数据的复杂性&#…...

[C/C++]用堆实现TopK算法

一:引入 思考一个问题: 怎么在100个数中找到前10个最大的数? way1: 相信大多数人想到的方法是先把100个数放到数组中从大到小排序,再打印前10个数 way2: 前一文中我们讲了堆结构,那么就可以把这100个数建为大堆,再依次pop10次 这种方法虽然再这个问题下可行,但是如果是再1亿…...

3D点云目标检测:VoxelNex解读(带源码/未完)

VoxelNext 通用vsVoxelNext一、3D稀疏卷积模块1.1、额外的两次下采样1.2、稀疏体素删减 二、高度压缩三、稀疏池化四、head五、waymo数据集训练六、训练自己的数据集bug修改 通用vsVoxelNext 一、3D稀疏卷积模块 1.1、额外的两次下采样 使用通用的3D sparse conv&#xff0c;…...

【Docker】从零开始:11.Harbor搭建企业镜像仓库

【Docker】从零开始&#xff1a;11.Harbor搭建企业镜像仓库 1. Harbor介绍2. 软硬件要求(1). 硬件要求(2). 软件要求 3.Harbor优势4.Harbor的误区5.Harbor的几种安装方式6.在线安装(1).安装composer(2).配置内核参数,开启路由转发(3).下载安装包并解压(4).创建并修改配置文件(5…...

使用conan包 - 工作流程

使用conan包 - 工作流程 主目录 conan Using packages1 Single configuration2 Multi configuration 本文是基于对conan官方文档Workflows的翻译而来&#xff0c; 更详细的信息可以去查阅conan官方文档。 This section shows how to setup your project and manage dependenci…...

【LeeCode】59.螺旋矩阵II

给定一个正整数 n&#xff0c;生成一个包含 1 到 n^2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 解&#xff1a; class Solution {public int[][] generateMatrix(int n) {int[][] ar…...

rsyslog学习

rsyslog是什么 RSYSLOG&#xff08;Remote System Logging&#xff09;是一个开源的日志处理工具&#xff0c;用于在 Linux 和 Unix 系统上收集、处理和转发日志。它是一个健壮且高性能的日志处理程序&#xff0c;可以替换 Syslogd 作为标准的系统日志程序。RSYSLOG 提供了许多…...

Navicat 技术指引 | GaussDB服务器对象的创建/设计(编辑)

Navicat Premium&#xff08;16.2.8 Windows版或以上&#xff09; 已支持对GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结构同步、协同合作、数据迁移等&#xff09;&#xff0c;这…...

有哪些可信的SSL证书颁发机构?

目前市面上所显示的SSL证书颁发机构可所谓不计其数&#xff0c;类型也是多样&#xff0c;就好比我们同样是买一件T恤&#xff0c;却有百家不同类型的店铺一个道理。根据CA里面看似很多&#xff0c;但能拿到99%浏览器及设备信任度的寥寥无几&#xff0c;下面小编整理出几家靠谱可…...

MidJourney笔记(4)-settings

前面已经大概介绍了MidJourney的基础知识,后面我主要是基于实操来分享自己的笔记。可能内容顺序会有点乱,请大家理解。 这次主要是想讲讲settings这个命令。我们只需在控制台输入/settings,然后回车,就可以执行这个命令。 (2023年11月26日版本界面) 可能有些朋友出来的界…...

前端开发学习 (三) 列表功能

一、列表功能 1、列表功能 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compa…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...