java中es检索and和or的使用_Elasticsearch查询中的OR和AND运算符
小编典典
我认为在这种情况下,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运算符相关推荐
- SQL查询中having和where的异同点
SQL查询中having与where 的异同点 在sql查询中, having与where类似,可以筛选数据,where后的表达式怎么写,having后就怎么写. 1. where针对表中的列发挥作用 ...
- java操作es聚合操作并显示其他字段_深入浅析Elasticsearch中的聚合操作
如果写过Elasticsearch的聚合操作DSL,都知道它非常的繁琐,很简单的业务就导致异常复杂的json.因为它的聚合操作是嵌套的,一个聚合的输出可以是另一个聚合的输入,并且聚合还支持pipeli ...
- 千万级数据查询中CK、ES、RediSearch方案的优化
前言 在开发中遇到一个业务诉求,需要在千万量级的底池数据中筛选出不超过 10W 的数据,并根据配置的权重规则进行排序.打散(如同一个类目下的商品数据不能连续出现 3 次). 下面对该业务诉求的实现,设 ...
- java event sourcing_使用Spring Cloud和Reactor在微服务中实现EventSourcing -解道Jdon
使用Spring Cloud和Reactor在微服务中实现Event Sourcing 当在微服务架构中构建应用时,状态管理成为分布式系统的问题,相比于传统monolithic应用,将状态管理通过事务 ...
- 【Java】Lucene检索引擎详解
基于Java的全文索引/检索引擎--Lucene Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能. L ...
- 我用Java+Redis+ES+Kibana技术对数百万知乎用户进行了数据分析,得到了这些...
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:_artoria_ http://tinyurl.c ...
- java读取ES配置生成ES管理类,获取ES连接
java读取ES配置生成ES管理类,获取ES连接 1.Elasticsearch是基于Lucene开发的一个分布式全文检索框架,向Elasticsearch中存储和从Elasticsearch中查询, ...
- java实现泛型检索_高级Java泛型:检索泛型类型参数
java实现泛型检索 在JDK5中引入Java泛型之后, Java泛型Swift成为许多Java程序的组成部分. 但是,乍一看似乎很简单的Java泛型,程序员很快就会迷失此功能. 大多数Java程序员 ...
- 高级Java泛型:检索泛型类型参数
在JDK5中引入Java泛型之后, Java泛型Swift成为许多Java程序的组成部分. 但是,乍一看似乎很简单的Java泛型,程序员很快就会迷失此功能. 大多数Java程序员都知道Java编译器的 ...
最新文章
- LeetCode刷题记录6——696. Count Binary Substrings(easy)
- 用Selenium 爬虫下载文件,解除Chrome 下载警告 (Keep or Discard),设置下载目录的方法
- 34丨关于Linux网络,你必须知道这些(下)
- [旧稿]How To Add Simple Install WebPart Menu to the Right Click On a CAB File
- 华为鸿蒙操作界面,华为鸿蒙被“实锤”,操作界面曝光,为何被吐槽是换皮安卓?...
- 解决 wamp网站访问慢的问题
- 生存在互联网公司是种怎样的体验?
- 在Linux系统中允许或拒绝SSH访问特定用户或组的方法
- LintCode: Two Sum
- 系统学习数字图像处理之频域滤波
- JavaScript—call, apply, bind 函数(20)
- WEB应用程序--概述
- Thinkpad T470 内置电池问题
- 优化弹出框sweetalert.min.js插件
- 用U盘制作PE启动盘安装Windows10系统
- 联通4G业务或沿用沃品牌 不推无限量套餐
- fifa11键盘按键_FIFA 20 Player集群
- mysql 不用斯芬克斯 全局模糊匹配 查询
- Java爬虫,信息抓取的实现
- 谷歌gke_GKE教程:Google Kubernetes引擎入门
热门文章
- LLVM full LTO 学习笔记
- 在国企搞代码是什么感受?​
- android调用系统下载器下载文件
- 数据库mysql的索引_数据库索引
- 中国知网html阅读说明什么区别,万方数据库与中国知网的区别都有哪些
- Vue 表单验证插件的写作过程
- ai怎么画循环曲线_图标扁平人物插画怎么画?场景渐变人物生活圆形app图标平面插画背景AI矢量图案设计ui素材...
- Go testing.common公共类源码剖析
- 齿轮箱数据集_电力机车齿轮箱样本监测数据.1docx
- 济南2021年高考马平烁 成绩 查询,济南18岁女孩高考裸分达704分 从不上辅导班