SpringBoot 整合 ElasticSearch|学习笔记

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 快速学习 SpringBoot 整合 ElasticSearch

开发者学堂课程【SpringBoot 实战教程 SpringBoot 整合 ElasticSearch】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/651/detail/10823


SpringBoot 整合 ElasticSearch


1首先进行架包依赖以下是 springboot 提供的相关依赖放入工程中创建好工程做好 web 整合写好启动类

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-elasticsearch</artifactId>

</dependency>

2、因为访问 elasticsearch 是远程服务器上的在 liunx 下的所以需要做全局配置指明相应的 IP 地址以及端口号创建 application.yml 格式

application.yml:

spring:

data:

elasticsearch:

cluster-nodes:192.168.25.129:9300指明 elasticsearch 的 IP 地址和端口号,9300是 java 进行访问端口号web 端是9200

local:false 是否是本地访问不是本地访问

repositories:是否进行存储

enabled:true属性

3、elasticsearch 存储的数据进行查询因为是以文档的形式进行存储都是阶层格式如何查询出的阶层数据应该封装成相应的实体类对象所以首先应该封装实体类队形提取一个 user 类它包含"first_ name ""last_ name ""age""about" "interests"五个属性定义实体类user

封装实体类存储时有 ID所以要把 ID 加上

package com. qianfeng ·pojo;

import java .util.List;

@Document(indexName="userindex",type="user")

指明相应的索引和类型否则会报错

public class User {

@id 用注解指明 id

PrivateLongid;

PrivateString first name ;

PrivateStringLastname ;

private intage;

PrivateStringabout;

PrivateList<String>interests ;有多个兴趣用对应的阶层数组到实体类中用集合进行表示

最后生成 setget 方法

public Long getId() {

Returnid;

}

public void setId (Longid) {

4、实现搜索创建 controller,TestController。

package com. qianfeng. controller;

import org. spring framework . beans. factory . annotation . Autowired;

Importorg.springframework.data.elasticsearch.core. ElasticsearchTe

import org. spring framework. stereotype . Controller;

@Controller

public class TestController {

/ /SpringBoot 在启动时自动配置了 ElasticsearcheTemplate

@Autowired

PrivateElasticsearchTemplate elasticSearchTemplate;

实现搜索直接用提供的模版即可

@RequestMapping(" / search")

@ResponseBody

PublicStringfindDoc ()查出的是文档因为存储时就是文档

{

//构造搜索条件比如年龄大于20,或年龄小于30的条件

有很多功能构成不同的条件根据需要构建的条件进行选择比如需要查找 first name也就是含有存在

QueryBuilder builder = QueryBuilders.existsQuery ("first_name‘’) ;

SearchQuery searchQuery=newNative SearchQueryBuilder () . withQuery (builder ).build();

创建 SearchQuery 对象SearchQuery 是接口类型的只要输入.with有很多以 with 开头可以设置的过滤条件比如让某些属性高亮显示等设置索引等这也它具备的特有的功能如果不设置相应的功能直接调用 build 方法build 方法最后会返回 SearchQuery 的类型的子类对象

List<user>users= elasticSearchTemplate.queryForList(searchQuery,User .class) ;

搜索条件构造好后使用 springboot 提供的模版实现查找因为查出来的肯定是多个写搜索条件后面是文档封装成实体类类型

for (User user :users)

{

System. out. println (user) ;

}

在 user.java 中加入 tostring 方法

return ‘’success‘’加字符串的返回值

}

在 springboot 中可以借助 Template 很方便的实现各种相应的对 elasticsearch 搜索引擎的操作

5、最后在启动类中进行扫描pojp 也会进行扫描

@SpringBootApplication(scanBasePackages="com. qianfeng"

6、启动controller 的访问路径是 search含有 first name 都能查出来存储了三个人三个人都含有 first name所以在控制台打印是三个人的信息输入localhost:8080/search

image.png

查看控制台可以看到把 janejohndouglas 三个人的信息都被打印出来

image.png

这就是 springboot 中如何整合 elasticsearch 的方式

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
2月前
|
JSON Java 网络架构
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
这篇文章介绍了如何使用Spring Boot整合REST方式来搭建和操作Elasticsearch服务。
148 4
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
|
1月前
|
JSON Java API
springboot集成ElasticSearch使用completion实现补全功能
springboot集成ElasticSearch使用completion实现补全功能
42 1
|
2月前
|
Web App开发 JavaScript Java
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
这篇文章是关于如何使用Spring Boot整合Elasticsearch,并通过REST客户端操作Elasticsearch,实现一个简单的搜索前后端,以及如何爬取京东数据到Elasticsearch的案例教程。
226 0
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
|
2月前
|
自然语言处理 Java Maven
elasticsearch学习二:使用springboot整合TransportClient 进行搭建elasticsearch服务
这篇博客介绍了如何使用Spring Boot整合TransportClient搭建Elasticsearch服务,包括项目创建、Maven依赖、业务代码和测试示例。
132 0
elasticsearch学习二:使用springboot整合TransportClient 进行搭建elasticsearch服务
|
2月前
|
自然语言处理 搜索推荐 Java
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图(一)
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图
58 0
|
2月前
|
存储 自然语言处理 搜索推荐
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图(二)
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图(二)
43 0
|
4月前
|
网络协议 Java API
SpringBoot整合Elasticsearch-Rest-Client、测试保存、复杂检索
这篇文章介绍了如何在SpringBoot中整合Elasticsearch-Rest-Client,并提供了保存数据和进行复杂检索的测试示例。
SpringBoot整合Elasticsearch-Rest-Client、测试保存、复杂检索
|
7月前
|
Java
【极问系列】springBoot集成elasticsearch出现Unable to parse response body for Response
【极问系列】springBoot集成elasticsearch出现Unable to parse response body for Response
942 2
|
NoSQL Java 测试技术
SpringBoot集成ElasticSearch在启动时报availableProcessors is already set to [8], rejecting [8]
SpringBoot集成ElasticSearch在启动时报availableProcessors is already set to [8], rejecting [8]
148 0
|
SQL 自然语言处理 Java
springboot 2.0集成elasticsearch 7.6.2 (集群)关键字高亮显示(上)
springboot 2.0集成elasticsearch 7.6.2 (集群)关键字高亮显示
209 0
springboot 2.0集成elasticsearch 7.6.2 (集群)关键字高亮显示(上)