04-springboot整合elasticsearch初识-简单增删改查及复杂排序,分页,聚合操作
2021-05-08 13:33
标签:业务 xtend 数据 test gets vat Pageable 模板方法 封装 ????前面大概了解了一下elasticsearch的数据存储和数据的查询。现在学习一下,es的复杂操作。 ????官网相关文档地址:https://www.elastic.co/guide/en/elasticsearch/client/java-api/7.x/java-docs-delete-by-query.html ????spring boot提供的Elasticsearch 的Data查询:https://docs.spring.io/spring-data/elasticsearch/docs/4.0.1.RELEASE/reference/html/#repositories.definition ????前面介绍了es的简单使用,现在梳理一下,通常工作使用中,用到的增删改查功能。 ????通过继承ElasticsearchRepository接口,通过提供的模板方法进行操作。AbstractElasticsearchRepository类已经帮我们封装好了常用的增删改查的方法,我们只要调用就行。 本质也是通过springboot 提供的es的操作类进行操作。eg: 都是用封装好的index方法进行操作。 在实际使用中,可能涉及到比较复杂的业务,所以,要了解一下复杂业务情况下,ES在Java中怎么进行操作 springboot也提供了排序的封装,但是要注意的是,不能对text进行排序,只能对数字或者字母排序。 repository存储库提供的查询方法 es java API查询的方法 关联查询 最小值/最大值/平均值 04-springboot整合elasticsearch初识-简单增删改查及复杂排序,分页,聚合操作 标签:业务 xtend 数据 test gets vat Pageable 模板方法 封装 原文地址:https://www.cnblogs.com/perferect/p/13161995.html1.简单操作
@Override
public Page
1.新增和修改
@Test
public void updateEntity(){
Person person = Person.builder().id("66666").name("六哥ya!!!").age(19).build();
Person p = repository.index(person);
p= repository.findById("66666").get();
log.info("=========================== {} ==================",p);
}
2.查询方法
ElasticSearch中提供了一些通用的方法:
findAll()
findById()
findAllById()
count();
Page
3.删除的方法
public void deleteById(ID id)
public void delete(T entity)
deleteAll(Iterable extends T> entities)
2.复杂操作
1.排序
除此之外,实体类上要增加注解@Field(fielddata=true)
Sort类提供了排序相关的字段方法,具体可以查看相关类及API文档 public void getList(){
Sort order = Sort.by(new Sort.Order(Sort.Direction.DESC, "age"));
Iterable
2.分页
@Test
public void getPageList() throws JsonProcessingException {
// PageRequest age = PageRequest.of(1, 10, Sort.Direction.ASC, "age");
PageRequest of = PageRequest.of(1, 10);
MatchAllQueryBuilder query = QueryBuilders.matchAllQuery();
Page all = repository.findAll(of);
Page search = repository.search(query, of);
log.info("==============={}================", JsonMapperUtil.toString(all));
log.info("==============={}================", JsonMapperUtil.toString(search));
}
NativeSearchQuery nq = new NativeSearchQueryBuilder().withPageable(of).build();
Page
3.聚合操作
@Test
public void getSortList(){
TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms("by_country").field("country")
.subAggregation(AggregationBuilders.dateHistogram("by_year")
.field("dateOfBirth")
.subAggregation(AggregationBuilders.avg("avg_children").field("children"))
);
NativeSearchQuery query = new NativeSearchQueryBuilder().addAggregation(aggregationBuilder).build();
List
文章标题:04-springboot整合elasticsearch初识-简单增删改查及复杂排序,分页,聚合操作
文章链接:http://soscw.com/index.php/essay/84047.html