Spring Data ElasticSearch

一.介绍
ElasticSearch 学习路线图
1.学习ElasticSearch安装及其API操作
2. 学习原生ElastricSearch java aui操作
3. spring data ElasticSearch 对步骤二进行简化
ElasticSearch Data 特点
4. 基于@Configgutation,只需要在application.yml进行配置,就可以使配置信息生效
5. 工具类 ElasticSearch(es模块),可以简化操作
6. 根据持久层接口自动生成对应实现方法(Reponsitory接口)

二. 环境搭建
pom文件

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

yml文件

#redis配置
spring:redis:database:   0     #数据库host: 127.0.0.1   #地址port: 6379        #端口号data:elasticsearch:cluster-nodes: 127.0.0.1:9300cluster-name: elasticsearch

test类(测试类)

@RunWith(SpringRunner.class)
@SpringBootTest(classes= TestApplication.class)
public class ESTest {@Resourceprivate ElasticsearchTemplate elasticsearchTemplate;@Resourceprivate BookRepositoryES bookRepositoryES;

3.索引库

步骤1 : 编写javabean ,并进行配置,使用javabean与es对应
@Decument使用注解确定 ,索引库,类型 ,分片数, 副本数
@Id 唯一标识(api操作_id)
@Field 使用注解配置字段, 注解type ,分词analyzer ,存储store ,索引 index 等
步骤2 : 使用ElsticSearchTemplate工具类,进行索引操作
createIndex()方法用于创建索引
putMapping()方法用于初始化映射
deleteIndex()方法用于删除索引
4文档操作
javaBean


@Data
@Document(indexName = "tiao",type = "book",shards = 3,replicas = 1)
@NoArgsConstructor
@AllArgsConstructor
public class BookEs {@Idprivate Long id;@Field(type= FieldType.Text , analyzer = "ik_max_word")private String title;@Field(type = FieldType.Keyword,index = true)private String images;@Field(type = FieldType.Float)private Float price;
}

创建/构建索引

@RunWith(SpringRunner.class)
@SpringBootTest(classes= TestApplication.class)
public class ESTest {@Resourceprivate ElasticsearchTemplate elasticsearchTemplate;@Resourceprivate BookRepositoryES bookRepositoryES;@Testpublic void deom01(){//1. 创建索引elasticsearchTemplate.createIndex(BookEs.class);//2. 构建类型elasticsearchTemplate.putMapping(BookEs.class);}

添加

  @Testpublic void add(){ //添加//准备数据BookEs bookEs = new BookEs();bookEs.setId(11l);bookEs.setTitle("静心怎么炼成的");bookEs.setImages("33.jpg");bookEs.setPrice(22f);bookRepositoryES.save(bookEs);}

添加一组

@Testpublic void addAll(){ //添加一组数据//准备数据ListList<BookEs>list=new ArrayList<>();list.add(new BookEs(1L,"放下手中的工作仔细听听我说","11.jpg",44.1f));list.add(new BookEs(2L,"夜未央星河独流淌","13.jpg",48.0f));list.add(new BookEs(3L,"扬帆远航 亦不过彷徨","14.jpg",66.6f));//添加bookRepositoryES.saveAll(list);}

修改

 @Testpublic void updateFn(){//修改BookEs es = new BookEs(11l,"枯藤老树昏鸦","33.jpg",33f);bookRepositoryES.save(es);}

删除索引

  @Testpublic void demo2(){//删除elasticsearchTemplate.deleteIndex(BookEs.class);}

根据id删除

 @Testpublic void deleteFn(){//删除 (根据/同构id删除)BookEs bookEs = new BookEs();bookEs.setId(11l);bookRepositoryES.delete(bookEs);}

5.查询
基本查询

    /*** 查询所有*/@Testpublic void find01(){Iterable<BookEs>blist=bookRepositoryES.findAll();Iterator<BookEs> iterable=blist.iterator();while (iterable.hasNext()){BookEs bookEs=iterable.next();System.out.println("---------"+bookEs);}}/*** 通过id查询*/public void findByIdFn(){Optional<BookEs> byId = bookRepositoryES.findById(11l);BookEs bookEs=byId.get();System.out.println(bookEs);}

自定义方法查询
spring data按照命名约定, 实现自定义方法查询 根据方法名就可知晓查询内容
语法: findBy条件
关键字: and , or , between , not , lessThan ,like ,orderBy
通过标题查询

首先在是实现类


public interface BookRepositoryES extends ElasticsearchCrudRepository<BookEs,Long> {//通过标题查询public List<BookEs>findByTitle(String title);//通过价格查询(区间)public List<BookEs>findByPriceBetween(float start,float end);
}

根据标题查询

 public void findTitle(){List<BookEs>list=bookRepositoryES.findByTitle("夜未央星河独流淌");System.out.println(list);}

区间查询

 public void findByPrice(){List<BookEs>list=bookRepositoryES.findByPriceBetween(20f,80f);System.out.println(list);}

最后分享一个费曼学习法

  1. 整理课程知识大纲,既要有框架又要有细节
  2. 假装自己是老师 知道大纲里的备案, 不看课本讲解课程内容
  3. 记不清或讲不明白的地方重点复习

Spring Data ElasticSearch增删改查相关推荐

  1. elasticsearch 增删改查(CRUD)

    elasticsearch 增删改查(CRUD) 本文阅读前提: 1.已经安装了elasticsearch.可以参考:http://blog.csdn.net/wild46cat/article/de ...

  2. Spring JPA实现增删改查

    1. 创建一个Spring工程 2.配置application文件 spring.datasource.driver-class-name= com.mysql.cj.jdbc.Driver spri ...

  3. java--spring5之spring实现jdbc增删改查----4

    1.引入依赖: aspectjweaver-1.6.8.jar cglib-2.2.0.jar.zip commons-logging-1.1.1.jar druid-1.1.9.jar hamcre ...

  4. Elasticsearch增删改查 之 —— Delete删除

    删除文档也算是常用的操作了...如果把Elasticsearch当做一款普通的数据库,那么删除操作自然就很常用了.如果仅仅是全文检索,可能就不会太常用到删除. Delete API 删除API,可以根 ...

  5. Elasticsearch增删改查

    2019独角兽企业重金招聘Python工程师标准>>> elasticsearch_rtf_1.3-master链接:http://pan.baidu.com/s/1qYH7w8O  ...

  6. elasticsearch增删改查实现

    1.操作索引 1.1.基本概念 Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的. 对比关系: 索引(indices)------------- ...

  7. ElasticSearch增删改查之python sort、scroll、scan

    1.用python操作elasticsearch有两个库可以调用 # ElasticSearch不支持scroll(分页查询)查询 from pyelasticsearch import Elasti ...

  8. Spring JdbcTemplate CRUD增删改查操作

    执行insert update delete操作 只需要使用JdbcTemplate的update方法就可以执行insert update delete操作. @RunWith(SpringJUnit ...

  9. spring入门(11)-spring与hibernate整合完成增删改查的操作(封装HibernateTemplate模版类对象)

    今天是spring的最后一节课,这节课老师讲了spring与hibernate整合完成增删改查的操作,这是很重要的一节课,这也是第一次真正的实现spring结合Hibernate和数据库连接上,下面是 ...

最新文章

  1. Rendering Problems Exception raised during rendering:
  2. SNMP系统信息获取工具onesixtyone
  3. Java几种常见的编码方式
  4. SolrCloud6.1.0之SQL查询测试
  5. python设计自定义函数_python
  6. 韩国防部长会见美驻韩大使 或谈韩日舰机矛盾
  7. Linux 文件 目录
  8. RSS(Really Simple Syndication)简易信息聚合
  9. 小男孩与苹果树(翻译)(06年10月)
  10. java文件运行错误_java项目中运行错误
  11. 西瓜书学习笔记2-多元线性回归公式推导
  12. 第三方库之 - SDWebImage
  13. 【搜索引擎】强推!最好用资源最全的十个百度网盘搜索引擎
  14. [Luogu3554] Poi2013 Triumphal arch
  15. 服务器上文件不能重命名,服务器文件重命名
  16. Todd.log - a place to keep my thoughts on programming
  17. Python学习笔记3.2-python内置函数大全
  18. latex并排显示表格
  19. 自用笔记17——泰波那契数列
  20. Creo教程:如何使用SQLite在Creo中创建日记应用?

热门文章

  1. 2022年蓝桥杯Python程序设计B组思路和代码分享
  2. 面试官:策略模式和代理模式有什么区别?
  3. 正则表达式学习及小练习
  4. MyBatis源码简单分析
  5. Unix和Linux有什么区别? 通俗解释
  6. neovim图标显示乱码,utf8字体显示乱码(Windows10和Centos安装nerd-fonts)
  7. short message
  8. Matlab计算波形的总谐波失真--THD(附完整代码)
  9. argc和argv的使用总结
  10. kindeditor上传图片时候,上传成功了,但是页面上却提示失败