Spring Data ElasticSearch增删改查
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);}
最后分享一个费曼学习法
- 整理课程知识大纲,既要有框架又要有细节
- 假装自己是老师 知道大纲里的备案, 不看课本讲解课程内容
- 记不清或讲不明白的地方重点复习
Spring Data ElasticSearch增删改查相关推荐
- elasticsearch 增删改查(CRUD)
elasticsearch 增删改查(CRUD) 本文阅读前提: 1.已经安装了elasticsearch.可以参考:http://blog.csdn.net/wild46cat/article/de ...
- Spring JPA实现增删改查
1. 创建一个Spring工程 2.配置application文件 spring.datasource.driver-class-name= com.mysql.cj.jdbc.Driver spri ...
- 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 ...
- Elasticsearch增删改查 之 —— Delete删除
删除文档也算是常用的操作了...如果把Elasticsearch当做一款普通的数据库,那么删除操作自然就很常用了.如果仅仅是全文检索,可能就不会太常用到删除. Delete API 删除API,可以根 ...
- Elasticsearch增删改查
2019独角兽企业重金招聘Python工程师标准>>> elasticsearch_rtf_1.3-master链接:http://pan.baidu.com/s/1qYH7w8O ...
- elasticsearch增删改查实现
1.操作索引 1.1.基本概念 Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的. 对比关系: 索引(indices)------------- ...
- ElasticSearch增删改查之python sort、scroll、scan
1.用python操作elasticsearch有两个库可以调用 # ElasticSearch不支持scroll(分页查询)查询 from pyelasticsearch import Elasti ...
- Spring JdbcTemplate CRUD增删改查操作
执行insert update delete操作 只需要使用JdbcTemplate的update方法就可以执行insert update delete操作. @RunWith(SpringJUnit ...
- spring入门(11)-spring与hibernate整合完成增删改查的操作(封装HibernateTemplate模版类对象)
今天是spring的最后一节课,这节课老师讲了spring与hibernate整合完成增删改查的操作,这是很重要的一节课,这也是第一次真正的实现spring结合Hibernate和数据库连接上,下面是 ...
最新文章
- Rendering Problems Exception raised during rendering:
- SNMP系统信息获取工具onesixtyone
- Java几种常见的编码方式
- SolrCloud6.1.0之SQL查询测试
- python设计自定义函数_python
- 韩国防部长会见美驻韩大使 或谈韩日舰机矛盾
- Linux 文件 目录
- RSS(Really Simple Syndication)简易信息聚合
- 小男孩与苹果树(翻译)(06年10月)
- java文件运行错误_java项目中运行错误
- 西瓜书学习笔记2-多元线性回归公式推导
- 第三方库之 - SDWebImage
- 【搜索引擎】强推!最好用资源最全的十个百度网盘搜索引擎
- [Luogu3554] Poi2013 Triumphal arch
- 服务器上文件不能重命名,服务器文件重命名
- Todd.log - a place to keep my thoughts on programming
- Python学习笔记3.2-python内置函数大全
- latex并排显示表格
- 自用笔记17——泰波那契数列
- Creo教程:如何使用SQLite在Creo中创建日记应用?