elasticsearch 简介、安装与使用

SpringBoot整合Elasticsearch 前面介绍了Elasticsearch的搭建,API使用,测试数据实战搜索。本文介绍怎么在SpringBoot中整合Elasticsearch。 阅读详情

简介

Elasticsearch是什么?

Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。

Elasticsearch相关概念说明

概念说明
索引库(indices)indices是index的复数,代表许多的索引
类型(type)类型是模拟mysql中的table概念,一个索引库下可以有不同类型的索引(目前6.X以后的版本只能有一个类型),类似数据库中的表概念。数据库表中有表结构,也就是表中每个字段的约束信息;索引库的类型中对应表结构的叫做映射(mapping),用来定义每个字段的约束。
文档(document)存入索引库原始的数据。比如每一条商品信息,就是一个文档
字段(field)文档中的属性
映射配置(mappings)字段的数据类型、属性、是否索引、是否存储等特性

Elasticsearch和mysql的对应关系

ElasticsearchMySQL
索引库(indices)Database 数据库
类型(type)Table 数据表
文档(Document)Row 行
域字段(Field)Columns 列
映射配置(mappings)每个列的约束(类型、长度)

安装

1.下载

es官网下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch

最新是 7.12.1 版本,这里选择 7.12.0 搭建案例 demo。

下载好了后,上传到 linux,解压压缩包在 /opt 下,

执行命令,启动 es,

sh /opt/elasticsearch-7.12.0/bin/elasticsearch

启动报错:can not run elasticsearch as root

es 不是以 root 用户启动,所以我们需要新建一个 es 用户来操作,

[root@localhost bin]# adduser es #添加es用户
[root@localhost bin]# passwd es #设置密码
[root@localhost bin]# chown -R es /opt/elasticsearch-7.12.0 #将对应的文件夹权限赋给该用户

创建好 es 用户后,切换到该用户重新启动 es,

[root@localhost bin]# su es
[es@localhost bin]$ sh /opt/elasticsearch-7.12.0/bin/elasticsearch

打开浏览器访问 ip:9200,浏览器提示无法连接,这里需要给 es 配置外网访问。编辑 elasticsearch.yml,可以看到配置中全是注释的配置,咱们不动那些注释过的,只添加自己的新配置。添加一行配置:network.host: 0.0.0.0

[es@localhost root]$ vim /opt/elasticsearch-7.12.0/config/elasticsearch.yml

然后再次启动 es,发现这次启动失败了,信息如下

不过不慌,小问题,切换到 root 用户下,编辑 /etc/security/limits.conf 文件,增加配置,用户退出后重新登录生效。

*               soft    nofile          65536
*               hard    nofile          65536

再次编辑 /etc/sysctl.conf 文件,增加配置 vm.max_map_count=262144,保存退出后然后执行 sysctl -p 使其生效。

切换到 es 用户,再次启动 es,依旧报错,信息如下:

集群的节点问题,继续去修改 elasticsearch.yml,追加配置

cluster.initial_master_nodes: ["node-1"]

保存退出后。启动 es,不报错并且启动成功。

打开浏览器访问 ip:9200,返回一个 json 字符串,es 启动成功。

2.使用

从这个网址构建一个springboot工程:https://start.spring.io/

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.4.5</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>demo-es</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
			<version>2.4.5</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<excludes>
						<exclude>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
						</exclude>
					</excludes>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>

application.yml

spring:
#  data:
#    elasticsearch:
#      client:
#        reactive:
#          endpoints: 192.168.59.128:9200
  elasticsearch:
    rest:
      uris: 192.168.59.128:9200

编写实体类 User,对应与 es 中的索引。

package com.example.demo.controller.entity;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;

/**
 * @author 相柳
 * @date 2021/5/21
 */
@Data
@Document(indexName = "user")
public class User {

    @Id
    private String username;

    private String password;

    private String info;
}

新建 EsController 和 EsService,其中 EsService 继承自 ElasticsearchRepository。

package com.example.demo.controller;

import com.example.demo.controller.entity.User;
import com.example.demo.controller.service.EsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.Optional;

@RestController
public class EsController {

    @Autowired
    private EsService esService;

    @GetMapping("/getFromEs")
    public String getFromEs(@RequestParam String userName) {
        Optional<User> byId = esService.findById(userName);
        if (byId.isPresent()) {
            return byId.get().toString();
        }
        return "failed";
    }

    @GetMapping("/insertEs")
    public String insertEs() {
        User user = new User();
        user.setUsername("jack");
        user.setPassword("123");
        user.setInfo("jack 666");
        esService.save(user);
        return "success";
    }

}
package com.example.demo.controller.service;


import com.example.demo.controller.entity.User;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;

/**
 * @author 相柳
 * @date 2021/5/21
 */
public interface EsService extends ElasticsearchRepository<User, String> {
}

好,接下来启动项目,启动成功依次执行:

http://localhost:8080/insertEs

http://localhost:8080/getFromEs?userName=jack

分别插入 jack,然后查找 jack。结果如下:

至此,整合完成,一个简单的 es demo 已经搭建出来了。

虽然很简单,但是正是有了这个简单开头,对于后续各种复杂的问题,才有解决的希望,才能有迹可循。

ElasticSearch入门简介、安装ES(安装Kibana和IK分词器)&使用 Postman连接ES进行测、ES&RestAPI(操作索引CRUD&操作文档CRUD)、练习 ES入门简介、安装ES(安装Kibana和IK分词器)&使用 Postman连接ES进行测、ES&RestAPI(操作索引库CRUD&操作文档CRUD)和批量操作文档 @BeforeEach和@BeforeAll的区别、练习’ 阅读详情

相关推荐

34、使用 Elasticsearch 构建索引数据存储

本文详细介绍了如何使用 Elasticsearch 构建高效的索引数据存储系统,并结合 Elastic Stack 和 Kibana 进行数据管理和分析。内容涵盖了安装配置、索引操作、文档处理、数据采集、性能优化、安全设置以及集群监控等关键步骤,适用于单客户视图(SCV)等大数据应用场景。通过实际操作流程和示例命令,帮助读者快速掌握 Elasticsearch 的核心功能与高级特性。

motor的博客 95

Elasticsearch集群:搭建集群环境

ElasticSearch集群搭建

Xin Adn Meng 1364

全球AI算力最强公司分析报告

全球AI算力最强公司分析报告显示,Google凭借自研TPU技术和庞大数据中心网络位居榜首,拥有约100万至150万块等效H100 GPU算力。微软、Meta和亚马逊紧随其后,分别拥有75万、55万和25万块等效H100 GPU。中国企业中,百度、阿里巴巴和腾讯表现突出,华为在国产AI芯片领域领先。技术指标上,NVIDIA H100相比A100性能显著提升,但功耗也大幅增加。未来AI算力需求将持续激增,预计2028年全球市场将超2000亿美元。新兴挑战者如xAI可能改变竞争格局。

MyySophia的博客 5721

乐购商城项目技术总结 -- ElasticSearch

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、ElasticSearch相关概念二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、ElasticSearch相关概念 Elasticsearch是面向文档(document oriented)的,这意味着它可以

KG6666666的博客 691

从一个过气考渣的角度看LLM智能化测试用例生成

根据业务需求生成测试用例,会涉及到相关上下文的召回、用例生成等场景。除了用例生成之外,也可以考虑应用LLM进行用例评审。因此,本文将涉及以下内容。

software_test010的博客 830

Demo2Reward:用人类演示动态优化VLM奖励模型提示

多模态大模型(VLM)的奖励建模正面临核心瓶颈——静态提示导致语义鸿沟与泛化失效。其本质是将人类判断标准固化为不可更新的文本模板,使奖励信号脱离真实任务意图。Demo2Reward提出范式级改进:以结构化人类演示为元信号,驱动提示权重连续优化,实现从‘结果打分’到‘过程理解’的跃迁。该方法不修改VLM主干,却显著提升RLHF收敛效率与OOD鲁棒性,在医疗、工业质检等场景验证了跨任务迁移与热修复能力。它重新定义了提示工程的技术价值:不是前端微调,而是奖励系统的认知校准基础设施。

weixin_34302798的博客 408

springboot集成ElasticSearch

springboot集成ES 7.6.2

sinat_25112709的博客 4372

如何在Ubuntu 22.04上为AlphaFold3配置NVIDIA A100 GPU(含驱动安装避坑指南)

本文提供了在Ubuntu 22.04系统上为AlphaFold3部署NVIDIA A100 GPU的完整安装教程。内容涵盖从系统环境准备、NVIDIA驱动安装与避坑指南,到Docker容器化部署、数据库获取以及最终构建运行AlphaFold3的详细步骤,旨在帮助研究者和开发者高效配置高性能计算环境,充分发挥A100的硬件潜力。

nft7creator的博客 468

关于ES版本升级为7.9.2后,遇到的一些问题

项目场景 最近项目做Spring Boot版本升级,升级的同时也顺便把ES升级一波,因为旧的ES用的是2.X的版本,现在都7.X,导致一些功能无法正常使用,需要更新替换 遇到的问题 问题 因为楼主用的是spring date elasticsearch封装的ES API,起初以为只是修改下端口号,将ElasticsearchTemplate改为ElastcisearchRestTemplate即可,结果没想到6.X之后,连接方式都改变了。 原先配置 spring: data: elastics

蜀山小师叔 1399

如何在多 GPU 配置上运行 Unsloth:数据并行或模型并行

当工作负载受限于内存(模型或批次无法放入单张显卡)、或受限于计算且计算与通信比率较高时(即每块 GPU 的额外计算量超过同步参数的开销,如在 DDP 中,或超过传递激活值的开销,如在模型并行中),多 GPU 配置才开始显现优势。在松散连接的显卡上(尤其是 PCIe 版本的 H100 或 A100),额外的设备间数据传输会导致性能显著低于单 GPU 运行。让我们厘清概念,明确说明如何通过模型并行(将模型拆分到多个 GPU)或数据并行(在每个 GPU 上复制模型)来跨多 GPU 运行 Unsloth。

人工智能领域专家 647

Java SSH框架学习

Java SSH框架学习

私信可回答各种问题~ 1793

ElasticSearch简介、安装、使用

ElasticSearch简介、安装、使用

wx479的博客 1118

华为OD机试 - 猴子吃桃 - 二分查找(Java 新系统 100分)

每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 3851

ElasticSearch学习篇1_ES简介、安装使用(ES、head可视化、Kibana可视化、IK分词器)

目录 Lucene简单概述 ElasticSearch概述 一、Lucene简单概述 概念 是一套信息检索工具包,也就是jar包,不包含搜索引擎系统 包含 索引结构、读写索引的工具、排序、搜搜规则、工具类等 ElasticSearch 和 Lucene关系 ES其实就是基于Lucene做了一些封装和增强! 二、ElasticSearch概述 概述 是一个开源的高拓展的 分布式全文检索引擎,他可以近乎实时的存储、检索数据,本身拓展性很好,可以拓展到上百台服务器,处理PB级别的数据 es适用jav

xiaosi的博客 1126

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

1、Elasticsearch简介与安装使用

Elasticsearch 是一个分布式的使用 REST 接口的强大搜索引擎,本文将对 Elasticsearch 进行简介和安装使用。

小确幸的博客 472

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【Elasticsearch】- elasticsearch简介与使用环境安装

elasticsearch简介与使用环境安装elasticsearch基础介绍简介1. 是什么?2. 能干什么?3. 实现原理Elasticsearch数据存储与关系型数据库的比较Elasticsearch的安装下载目录结构运行测试RESTful elasticsearch基础介绍 简介 1. 是什么? Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。 Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这

1+1=王的博客 2154

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ElasticSearch简介与安装配置

ES简介 ES是一个基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎。 特点是:高可用,高扩展,是一种NOSQL的数据存储工具 ES安装前的准备 下载: elasticsearch-6.2.2.tar.gz elasticsearch-head-master.zip elasticsearch-analysis-ik-6.2.2.zip kibana-6.2.2-linux-x86_64.tar.gz logstash-6.2.2.tar.gz nod

qianchun22的博客 222

视频教程-SpringBoot整合ElasticSearch实现电商高性能搜索引擎-Java

SpringBoot整合ElasticSearch实现电商高性能搜索引擎 张...

weixin_32422357的博客 529

SpringBoot集成日志搜索引擎Elasticsearch

一.ES简介 elasticsearch是一个高度可扩展的开源全文搜索和分析引擎,可以快速的、近实时地对大数据进行存储、搜索和分析,用来支撑复杂的数据搜索需求和企业级应用,主要用于海量系统日志的数据查询与分析。 二.ES安装 下载地址:https://www.elastic.co/downloads/elasticsearch。 下载ES压缩包解压后,进入bin目录,双击elastics...

nimazhao的博客 4950

通过docker安装ElasticSearch并与PHP结合使用

1.使用docker-compose安装elasticsearch和kibana 1.1 Compose介绍 Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。 Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有

SEUNRain的博客 477

简析Elasticsearch-简介、安装、配合Kibana使用、SpringBoot整合

Elasticsearch、Kibana、SpringBoot

weixin_43794931的博客 597

LLMs之VDB:Elasticsearch的简介、安装和使用方法、案例应用之详细攻略

​ LLMs之VDB:Elasticsearch的简介、安装和使用方法、案例应用之详细攻略 目录 Elasticsearch的简介 Elasticsearch的安装和使用方法 Elasticsearch的案例应用 Elasticsearch的简介 Elasticsearch是一个分布式、RESTful的搜索和分析引擎,也是一个可扩展的数据存储和向量数据库,针对生产规模的工作负载进行了优化,速度和相关性极佳。它是E

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 2201

Elasticsearch 搜索引擎实现对文档内容进行快速检索(保姆级教程)

Elasticsearch 搜索引擎实现对文档内容进行快速检索(保姆级教程) 去发现同类优质开源项目:https://gitcode.com/ 本资源文件提供了一个详细的教程,帮助用户使用 Elasticsearch 搜索引擎实现对文档内容的快速检索。无论你是初学者还是有一定经验的开发者,本教程都将为你提供从基础到高级的全面指导。 内容概述 Elasticsearch 简介 介绍 Elasti...

gitblog_06524的博客 470

ElasticSearch一:简介、概念、安装、Kibana客户端安装使用、IK分词器、数据管理

ElasticSearch简介 ElasticSearch(简称ES) Elasticsearch是用Java开发并且是当前最流行的开源的企业级搜索引擎。 能够达到实时搜索,稳定,可靠,快速,安装使用方便。 客户端支持Java、.NET(C#)、PHP、Python、Ruby等多种语言。 官方网站: https://www.elastic.co/ 下载地址:https://www.elastic.co/cn/start 创始人:Shay Banon(谢巴农) 应用场景 Elasti

Xx__WangQi的博客 883

ES6 简介 以及Babel(转码工具)的安装和使用

ES6简介 es6是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 等,Node.js是JavaScript的服务器运行环境。它对 ES6 的支持度更高。 Babel 1.简介 babel是一个广泛使用的es6转换器,可以将ES6代码转为ES5代码,从而在老版本的浏览器执行。 2.安装 (1) npm init 初...

qq_45867474的博客 502
上一篇: seata 1.4.2 踩坑吐血记录
下一篇: kettle简介与安装
Yuwen_forJava
博客等级 码龄9年 28粉丝 90原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值