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

摘要:
TransportClientclient=EsTransportClient。getInstance();SearchRequestBuildersearchRequestBuilder=客户端。prepareSearch(“”);searchRequestBuilder。集合指数(“megacorp”);searchRequestBuilder.setTypes(“emplo
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嵌套和普通条件一起进行查询》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇腾讯蓝鲸cmdb部署Jenkins的Pipeline脚本在美团餐饮SaaS中的实践下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

mini.DataGrid使用说明

√√√ ajaxOptionsObjectajax配置对象。√√√ idFieldString是行数据的唯一字段。设置为“client”之后,客户端将排序√√√√ totalCountNumber记录总数√√√ defaultColumnWidthNumber默认列宽100√√√√ showColumnsBoolean显示标头true√√√√ showPag...

Android开发 Camera2的CaptureRequest属性整理--完善中

当android.control.aeExposureCompensation改变时,即使AE锁定为ON,则相机设备将仍然调整其曝光值。如果android.control.aeMode是ON_ALWAYS_FLASH,现场可能会变得过度曝光。同样,AEprecapture触发取消了当AE已被锁定没有影响。见android.control.aeState为AE...

《学习opencv》笔记——矩阵和图像操作——cvAnd、cvAndS、cvAvg and cvAvgSdv

矩阵和图像的操作cvAnd函数其结构voidcvAnd;程序实例#include#include#includeintmain{IplImage*src1,*src2,*src3;src1=cvLoadImage;src2=cvLoadImage;src3=cvLoadImage;cvAnd;cvShowImage;cvShowImage;cvShowIma...

Redis设置Auth认证保护

Redis有一种保护数据安全的身份验证方法。有两种方法可以设置此身份验证。一个是通过配置文件。另一种是直接在Redis客户端命令中设置参数requirepas。首先是在配置文件中查找参数requirepass。这是配置Redis访问密码的参数。由于Redis具有很强的并发能力,并且只使用密码,攻击者可能会在短时间内发送大量密码猜测请求,这很容易被暴力破解。因...

seata启动报错的可能原因,以及解决方案

seata启动错误的可能原因及解决方案。首先,我下载了seata 0.9版和jdk 12.0.2版。启动错误的截图是:它显示无法创建虚拟机。我尝试了很多方法,但都没有解决。...

ORACLE DELETE数据慢的案例

我去处理这个问题时,首先怀疑可能是SQL的阻塞、触发器、外键约束、高水位线等因素中的某一个导致DELETE操作慢,于是我打算一个一个排除,我先试着删除一条记录,然后去检查SQL的阻塞情况,结果使用下面SQL语句并没有发现SQL被阻塞。于是SQL的阻塞导致DELETE慢的原因被我排除了。也就是说DELETE操作并不会触发任何触发器。我们可以用跟踪当前会话,查看...