当前位置:   article > 正文

ES构建queryBuilder条件查询_boolquerybuilder

boolquerybuilder

对于不熟练的同学来说在构建Java代码查询之前一定要先将DSL查询语句,这样方便构造。

首先说一下bool查询的几种逻辑关系(子查询的组合方式):

must:必须匹配每个子查询,与Java的“与”相似

should:选择性的匹配子查询,与Java的“或”相似

must_not:必须不匹配,(不参与算分)与Java的“非”相似

filter:必须匹配,(不参与算分)用来匹配自主的过滤条件

查询的基本步骤是:

1、创建SearchRequest对象

2、准备Request.source(),也就是DSL:①QueryBuilders来构建查询条件②传入Request.source()的query()方法

3、发送请求,得到结果

4、解析结果(参考DSL查询的JSON结果,从外到内,逐层解析)

全文检索的match和multi_match查询与match_all的API基本一直。差别是查询条件,也就是query的部分。同样是利用QueryBuilders提供的方法:

QueryBuilders.matchQuery("all","如家");

QueryBuilders.multiMatchQuery("如家","name","business");

相对应的DSL语句:

GET /hotel/_search

{

        "query": {

                "match_all":{}

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/698083
推荐阅读
相关标签
  

闽ICP备14008679号