乐优商城项目总结day(12)

SpringDataElasticSearch

乐优商城项目总结day(12)
Spring Data 的强大之处,就在于你不用写任何DAO处理,自动根据方法名或类的信息进行CRUD操作。只要你定义一个接口,然后继承Repository提供的一些子接口,就能具备各种基本的CRUD功能。
乐优商城项目总结day(12)
除此之外,还能通过search(QueryBuilder var1)search(QueryBuilder var1, Pageable var2)进行elasticsearch原生的查询,也能通过search(SearchQuery var1)进行更加复杂的原生查询(如聚合、过滤等)。

Repository的search方法需要QueryBuilder参数,elasticSearch为我们提供了一个对象QueryBuilders:
乐优商城项目总结day(12)
QueryBuilders提供了大量的静态方法,用于生成各种不同类型的查询对象,例如:词条、模糊、通配符等QueryBuilder对象。

elasticsearch提供很多可用的查询方式,但是不够灵活,如果想玩过滤或者聚合查询等就很难了,因此可以使用search(SearchQuery var1)来进行更加复杂的查询。
SearchQuery是由NativeSearchQueryBuilderbuild()方法生成的,如下:
乐优商城项目总结day(12)
在build过程中可以组合各种条件进行复杂的查询,如分页,搜索结果过滤,聚合,布尔查询,filter过滤,匹配等。

相关文章: