码迷,mamicode.com
首页 > 其他好文 > 详细

es嵌套和普通条件一起进行查询

时间:2019-09-27 19:41:22      阅读:349      评论:0      收藏:0      [点我收藏+]

标签:lse   term   sea   嵌套   col   bool   instance   嵌套类   style   

TransportClient client = EsTransportClient.getInstance();
        SearchRequestBuilder searchRequestBuilder = client.prepareSearch("");
        searchRequestBuilder.setIndices("megacorp");
        searchRequestBuilder.setTypes("employee");
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
        QueryBuilder termQueryBuilder1 = QueryBuilders.termQuery("last_name", "smith");
        //嵌套类型查询
        QueryBuilder tags = QueryBuilders.nestedQuery("tags", QueryBuilders.termQuery("tags.userid", "1a"), ScoreMode.Total);
        boolQueryBuilder.must(tags);
        boolQueryBuilder.must(termQueryBuilder1);
        searchRequestBuilder.setQuery(boolQueryBuilder);
        SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();

 经过查询后发现boolQueryBuilder结构是这样的,符合预期可以查询成功

{
  "bool" : {
    "must" : [
      {
        "nested" : {
          "query" : {
            "term" : {
              "tags.userid" : {
                "value" : "1a",
                "boost" : 1.0
              }
            }
          },
          "path" : "tags",
          "ignore_unmapped" : false,
          "score_mode" : "sum",
          "boost" : 1.0
        }
      },
      {
        "term" : {
          "last_name" : {
            "value" : "smith",
            "boost" : 1.0
          }
        }
      }
    ],
    "adjust_pure_negative" : true,
    "boost" : 1.0
  }
}

 

es嵌套和普通条件一起进行查询

标签:lse   term   sea   嵌套   col   bool   instance   嵌套类   style   

原文地址:https://www.cnblogs.com/olzoooo/p/11599565.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!