乐优商城项目总结day(12)
SpringDataElasticSearch
Spring Data 的强大之处,就在于你不用写任何DAO处理,自动根据方法名或类的信息进行CRUD操作。只要你定义一个接口,然后继承Repository提供的一些子接口,就能具备各种基本的CRUD功能。
除此之外,还能通过search(QueryBuilder var1)
或search(QueryBuilder var1, Pageable var2)
进行elasticsearch原生的查询,也能通过search(SearchQuery var1)
进行更加复杂的原生查询(如聚合、过滤等)。
Repository的search方法需要QueryBuilder参数,elasticSearch为我们提供了一个对象QueryBuilders:
QueryBuilders提供了大量的静态方法,用于生成各种不同类型的查询对象,例如:词条、模糊、通配符等QueryBuilder对象。
elasticsearch提供很多可用的查询方式,但是不够灵活,如果想玩过滤或者聚合查询等就很难了,因此可以使用search(SearchQuery var1)
来进行更加复杂的查询。
SearchQuery
是由NativeSearchQueryBuilder
的build()
方法生成的,如下:
在build过程中可以组合各种条件进行复杂的查询,如分页,搜索结果过滤,聚合,布尔查询,filter过滤,匹配等。