zoukankan      html  css  js  c++  java
  • es嵌套和普通条件一起进行查询

    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
      }
    }
  • 相关阅读:
    【C#】工具类-FTP操作封装类FTPHelper
    网盘搜索网站
    在线服务
    Windows下安装NTP服务器
    vue 组件间的传值 + 路由守卫
    功能6 -- 选项卡数据缓存
    vue2.0/3.0
    vuex
    mySql笔记
    Typescript
  • 原文地址:https://www.cnblogs.com/olzoooo/p/11599565.html
Copyright © 2011-2022 走看看