小编典典

我认为在这种情况下,Bool查询是最好的选择。

就像是 :

{

"bool" : {

"must" : { "term" : { "component" : "comp_1" } },

"should" : [

{ "term" : { "userId" : "A1A1" } },

{ "term" : { "customerId" : "C1" } },

{ "term" : { "currentRole" : "ADMIN" } }

],

"minimum_should_match" : 1

}

}

在Java中:

QueryBuilder qb = QueryBuilders

.boolQuery()

.must(termQuery("component", currentComponent))

.should(termQuery("userId", currentUserId))

.should(termQuery("customerId", currentCustomerId))

.should(termQuery("currentRole", ADMIN))

.minimumNumberShouldMatch(1)

该must部分是ANDS,该should部分都或多或少ORS,除了你可以指定的最小数量should(用s到比赛minimum_should_match),这个最低默认为1,我认为(但你可以将其设置为0,这意味着文件不匹配的should条件也将被返回)。

如果要进行涉及嵌套ANDs和ORs的更复杂的查询,只需将其他布尔查询嵌套在内部must或should部分中。

另外,当您寻找准确的值(id等)时,也许可以使用术语查询代替匹配查询,从而节省了分析阶段的时间(如果对这些字段进行了分析,则不一定有意义)对于ID)。如果对它们进行了分析,则您仍然可以这样做,但前提是您必须确切地知道术语的存储方式(例如,标准分析器将它们存储为小写)。

2020-06-22

java中es检索and和or的使用_Elasticsearch查询中的OR和AND运算符相关推荐

  1. SQL查询中having和where的异同点

    SQL查询中having与where 的异同点 在sql查询中, having与where类似,可以筛选数据,where后的表达式怎么写,having后就怎么写. 1. where针对表中的列发挥作用 ...

  2. java操作es聚合操作并显示其他字段_深入浅析Elasticsearch中的聚合操作

    如果写过Elasticsearch的聚合操作DSL,都知道它非常的繁琐,很简单的业务就导致异常复杂的json.因为它的聚合操作是嵌套的,一个聚合的输出可以是另一个聚合的输入,并且聚合还支持pipeli ...

  3. 千万级数据查询中CK、ES、RediSearch方案的优化

    前言 在开发中遇到一个业务诉求,需要在千万量级的底池数据中筛选出不超过 10W 的数据,并根据配置的权重规则进行排序.打散(如同一个类目下的商品数据不能连续出现 3 次). 下面对该业务诉求的实现,设 ...

  4. java event sourcing_使用Spring Cloud和Reactor在微服务中实现EventSourcing -解道Jdon

    使用Spring Cloud和Reactor在微服务中实现Event Sourcing 当在微服务架构中构建应用时,状态管理成为分布式系统的问题,相比于传统monolithic应用,将状态管理通过事务 ...

  5. 【Java】Lucene检索引擎详解

    基于Java的全文索引/检索引擎--Lucene Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能. L ...

  6. 我用Java+Redis+ES+Kibana技术对数百万知乎用户进行了数据分析,得到了这些...

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:_artoria_ http://tinyurl.c ...

  7. java读取ES配置生成ES管理类,获取ES连接

    java读取ES配置生成ES管理类,获取ES连接 1.Elasticsearch是基于Lucene开发的一个分布式全文检索框架,向Elasticsearch中存储和从Elasticsearch中查询, ...

  8. java实现泛型检索_高级Java泛型:检索泛型类型参数

    java实现泛型检索 在JDK5中引入Java泛型之后, Java泛型Swift成为许多Java程序的组成部分. 但是,乍一看似乎很简单的Java泛型,程序员很快就会迷失此功能. 大多数Java程序员 ...

  9. 高级Java泛型:检索泛型类型参数

    在JDK5中引入Java泛型之后, Java泛型Swift成为许多Java程序的组成部分. 但是,乍一看似乎很简单的Java泛型,程序员很快就会迷失此功能. 大多数Java程序员都知道Java编译器的 ...

最新文章

  1. LeetCode刷题记录6——696. Count Binary Substrings(easy)
  2. 用Selenium 爬虫下载文件,解除Chrome 下载警告 (Keep or Discard),设置下载目录的方法
  3. 34丨关于Linux网络,你必须知道这些(下)
  4. [旧稿]How To Add Simple Install WebPart Menu to the Right Click On a CAB File
  5. 华为鸿蒙操作界面,华为鸿蒙被“实锤”,操作界面曝光,为何被吐槽是换皮安卓?...
  6. 解决 wamp网站访问慢的问题
  7. 生存在互联网公司是种怎样的体验?
  8. 在Linux系统中允许或拒绝SSH访问特定用户或组的方法
  9. LintCode: Two Sum
  10. 系统学习数字图像处理之频域滤波
  11. JavaScript—call, apply, bind 函数(20)
  12. WEB应用程序--概述
  13. Thinkpad T470 内置电池问题
  14. 优化弹出框sweetalert.min.js插件
  15. 用U盘制作PE启动盘安装Windows10系统
  16. 联通4G业务或沿用沃品牌 不推无限量套餐
  17. fifa11键盘按键_FIFA 20 Player集群
  18. mysql 不用斯芬克斯 全局模糊匹配 查询
  19. Java爬虫,信息抓取的实现
  20. 谷歌gke_GKE教程:Google Kubernetes引擎入门

热门文章

  1. LLVM full LTO 学习笔记
  2. 在国企搞代码是什么感受?​
  3. android调用系统下载器下载文件
  4. 数据库mysql的索引_数据库索引
  5. 中国知网html阅读说明什么区别,万方数据库与中国知网的区别都有哪些
  6. Vue 表单验证插件的写作过程
  7. ai怎么画循环曲线_图标扁平人物插画怎么画?场景渐变人物生活圆形app图标平面插画背景AI矢量图案设计ui素材...
  8. Go testing.common公共类源码剖析
  9. 齿轮箱数据集_电力机车齿轮箱样本监测数据.1docx
  10. 济南2021年高考马平烁 成绩 查询,济南18岁女孩高考裸分达704分 从不上辅导班