添加依赖

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

</dependency>

<dependency>

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

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

</dependency>

配置

#集群名称

spring.data.elasticsearch.cluster-name=elasticsearch

#es 的地址和端口

spring.data.elasticsearch.cluster-nodes=192.168.7.188:9300

实体类

@Data

@AllArgsConstructor

@NoArgsConstructor

//配置 indexName 索引名称,type 是类型名称,shards 是分片数,replicas 是副本数

@Document(indexName = "goods",type = "_doc",shards = 1,replicas = 0)

public class Goods {

@Id

private Long id;

//配置字段,type 是类型,analyzer 是分词器,index 是否索引

@Field(type = FieldType.Text,analyzer = "ik_max_word")

private String name;

@Field(type = FieldType.Keyword)

private String brand;

@Field(type = FieldType.Keyword)

private String categroy;

@Field(type = FieldType.Double)

private Double price;

}

使用 ElasticsearchTemplate 创建索引,添加映射

@RunWith(SpringJUnit4ClassRunner.class)

@SpringBootTest(classes = SearchServiceApplication.class)

public class ElasticsearchTest {

@Autowired

private ElasticsearchTemplate template;

@Test

public void createIndex(){

//删除索引

template.deleteIndex(Goods.class);

//创建索引

template

.createIndex(Goods.class);

//添加映射,将字段映射到类型上

template.putMapping(Goods.class);

}

}

检查结果

操作索引

==================================================================

使用 ElasticsearchRepository 接口完成索引操作

/**

  • goods 索引操作接口

*/

public interface GoodsRepository extends ElasticsearchRepository<Goods,Long> {

}

测试添加数据

@Autowired

private GoodsRepository goodsRepository;

@Test

public void testSave(){

Goods goods = new Goods(1L, "华为 P30 手机", "Huawei", "手机", 4444.0);

//单条保存,id 存在就更新,不存在就添加

goodsRepository.save(goods);

List<Goods> list = Arrays.asList(

new Goods(2L, "华为 P40 手机", "Huawei", "手机", 6666.0),

new Goods(3L, "小米 11 手机", "MI", "手机", 6666.0),

new Goods(4L, "小米 12 手机", "MI", "手机", 1666.0),

new Goods(5L, "小米 13 手机", "MI", "手机", 2666.0),

new Goods(6L, "OPPOX1 手机", "oppo", "手机", 3666.0),

new Goods(7L, "OPPOX2 手机", "oppo", "手机", 4666.0),

new Goods(8L, "OPPOX3 手机", "oppo", "手机", 2666.0),

new Goods(9L, "VIVOv1 手机", "vivo", "手机", 3666.0),

new Goods(10L, "VIVOv2 手机", "vivo", "手机", 5666.0)

);

//多条保存

goodsRepository.saveAll(list);

}

查询数据

==================================================================

ElasticsearchRepository 提供了非常强大的查询生成功能,按约定的方式在接口中定义查询方法,它来实现查询。

如:

/**

  • goods 索引操作接口

*/

public interface GoodsRepository extends ElasticsearchRepository<Goods,Long> {

//通过名称模糊查询

List<Goods> findByNameLike(String name);

//查询两个价格之间的商品

List<Goods> findByPriceBetween(Double p1,Double p2);

}

可以使用的关键字:

| 关键字 | 示例 |

| --- | --- |

| And | findByNameAndPrice |

| Or | findByNameOrPrice |

| Is | findByName |

| Not | findByNameNot |

| Between | findByPriceBetween |

| LessThan | findByPriceLessThan |

| LessThanEqual | findByPriceLessThanEqual |

| GreaterThan | findByPriceGreaterThan |

| GreaterThanEqual | findByPriceGreaterThan |

| Before | findByPriceBefore |

如果本文对你有帮助,别忘记给我个3连 ,点赞,转发,评论,
咱们下期见!答案获取方式:已赞 已评 已关~?
学习更多JAVA知识与技巧,关注博主查看个人资料 或评论留言

原文出处:SpringBoot整合Elasticsearch_Java_InfoQ写作社区

SpringBoot 整合 Elasticsearch相关推荐

  1. es springboot 不设置id_原创 | 一篇解决Springboot 整合 Elasticsearch

    ElasticSearch 结合业务的场景,在目前的商品体系需要构建搜索服务,主要是为了提供用户更丰富的检索场景以及高速,实时及性能稳定的搜索服务. ElasticSearch是一个基于Lucene的 ...

  2. 七、SpringBoot整合elasticsearch集群

    @Author : By Runsen @Date : 2020/6/12 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘 ...

  3. SpringBoot整合ElasticSearch实现多版本的兼容

    前言 在上一篇学习SpringBoot中,整合了Mybatis.Druid和PageHelper并实现了多数据源的操作.本篇主要是介绍和使用目前最火的搜索引擎ElastiSearch,并和Spring ...

  4. SpringBoot整合elasticsearch (java整合es)

    欢迎大家进群,一起探讨学习 微信公众号,每天给大家提供技术干货 博主技术笔记 博主网站地址1 博主网站地址2 博主开源微服架构前后端分离技术博客项目源码地址,欢迎各位star SpringBoot整合 ...

  5. SpringBoot 整合ElasticSearch全文检索

    ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java语言开发的,并作为Apa ...

  6. Springboot整合Elasticsearch(High-level-Client)

    前言 通过学习Elasticsearch一小段时间来稍微认识了一点ES的体系架构.发现ES最大的坑就是版本兼容性问题了-在整合Springboot也不例外,但是,有一种方式能较好的解决-通过restc ...

  7. Elasticsearch的安装,以及Springboot整合Elasticsearch

    *一.下载好elasticsearch并解压 我这里用的是elasticsearch-5.6.8,下面是下载地址 https://artifacts.elastic.co/downloads/elas ...

  8. SpringBoot整合Elasticsearch详细步骤以及代码示例(附源码)

    准备工作# 环境准备# JAVA版本 Copy java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1. ...

  9. 【十九】springboot整合ElasticSearch实战(万字篇)

    本章开始学习springboot整合ElasticSearch 7.X版本并通过小demo实现基本的增删改查.实现如下案例: 1.当向数据新增一个商品信息时,同时向rabbitMQ发起消息(异步实现) ...

  10. Springboot 整合ElasticSearch 常用的插入查询,模糊查询,范围查询

    前言 本来该篇教程就应该写到 Springboot 整合 ElasticSearch 入门教学必看 https://blog.csdn.net/qq_35387940/article/details/ ...

最新文章

  1. 基于haproxy+keepalive+varnish实现lnmp企业级架构
  2. OpenStack安装部署实战——问题集锦
  3. html点击旋转180,关于点击三角丝滑旋转180度css3 jq处理方法
  4. 信息系统项目管理师优秀论文:项目采购管理
  5. ztree插件的使用
  6. [React] 尚硅谷 -- 学习笔记(一)
  7. opencv3.4.1 + vs 2017 + cmake 3.11.3 + win10 配置. 终章
  8. 不同的载体 不同的商业模式
  9. python可以和java共存吗_python3 and python2 共存
  10. ES6学习笔记(对象新增方法)
  11. Layui 数据表格:用户个性化定制列(拖拽,隐藏)
  12. bodymovin导出没有html5,AE脚本-导出json格式的Web动画工具 Bodymovin v5.5.3+使用教程
  13. 机械工程师设计手册电子版
  14. 大前端完整学习路线(完整版)
  15. 【深度学习】卷积神经网络原理
  16. 35KV,110KV变电所设计,供配电电气部分设计,总降压变电所设计
  17. 局域网ip扫描工具_树莓派无屏幕自动获取IP诸方法
  18. 封装一个学生类Student(使用类与对象的方法)
  19. gcc与cmake、qmake与make、ninja
  20. php 错误 异常,PHP错误异常处理

热门文章

  1. PTA 循环结构 7-3 简写转全称
  2. Vue入门(10)axios
  3. 2021年教你增加拿到BAT等大厂offer几率,分享PDF高清版
  4. 紧凑存储的杜利特尔分解法Doolittle(LU分解法)_解线性方程组的直接解法
  5. 【观察】 通盘无妙手,看SmartX如何构建增长根基
  6. linux将txt文件转化为raw,如何利用qemu-img工具将其它格式的镜像文件转换成VHD或RAW格式...
  7. 过滤敏感词汇(trie树实现敏感词过滤)
  8. 什么是固态硬盘?它有什么好处?
  9. 阿里云ECS服务器环境搭建(2) —— ubuntu 16.04 安装中文输入法(搜狗输入法)
  10. 基于5G城市道路积水监测系统解决方案