java中使用es精准查询_使用ES简单查询语句须知

查询样例

{"query": { //1

"bool": { ///2

"must": [{ //3

"query_string": {

"default_field": "xxxz",

"query": " *XXX* "

}

}],

"should": [], //4

"must_not": [], 5

"filter": [{ //6

"range": {

"l_last_ts": {

"gte": 1579086000000,

"lt": 1579172400000

}

}

}, {

"term": {

"xxx": "123456"

}

}, {

"term": {

"xxx": "1234567"

}

}, {

"exists": {

"field": "xx"

}

}]

}

}

}

这条语句代表这利用Kibana从ES中查询,查询条件以 query标签开始,以bool查询形式插入条件,其中可以插入条件

must , must_not , should , should_not , filter等,must , must_not , should , should_not , 这些是查询条件是以单独一条的形式存在的,就是说,如果使用,must,则must这个语句块总只放一个单独的条件,在filter中,这个语句块中可以放多个条件,如 range ,

term , exists等,range 表示用来查询时间区间内的数据,一个term相当于一个条件查询,多个term 则是相当于 条件 and 条件

exists则是代表,ES索引中必须存在这个key。

上述语句相当于下列 java 代码:

QueryBuilder queryBuilder = QueryBuilders.boolQuery().

filter(QueryBuilders.rangeQuery(EsQueryConstant.L_LAST_TS).gte(1579086000000).lt(1579172400000)).

filter(QueryBuilders.termQuery("xxx", 123456)).

filter(QueryBuilders.termQuery("xxx", "1234567")).

filter(QueryBuilders.existQuery("xx")).

must(QueryBuilders.stringQuery("xxxz", "*" + "XXX" + "*"));

ES的查询语句必须满足JSON格式,查询语法DSL:

上述查询示例中,1是最外层必须格式,2代表着bool中的查询语句遵循着ES中的相似度评分查询规则,3代表着必须遵循的查询条件,这里还可以是mustnot,should,shouldnot,filter等,这里是非必须条件,可以不写bool,直接上条件,但必须遵循ES查询规则,3中可以包含多种条件,诸如match,multi_match等,3中也可以直接写term等条件(在老版本的ES中支持,新版本的ES中已经不支持这样的查询规则了),6表示着筛选条件,可以在其中设置筛选规则,其中可以包含term,range,exists,type等规则

term:精准字段匹配,如果在ES索引模板中未设置字段类型为.keyword的情况下直接使用这个进行字段查询,则可能出现匹配不到的情况,或者是匹配上多个相似的值,在设置了模板的情况下直接查询,就是进行精准字段查询

range:范围查询,和关系型数据库的 >=,<=一个意义

exist:判断文档是否存在这个key

type: 筛选与所提供的文档/映射类型匹配的文档。

其余的如 agg 等内容,下次再写吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php的create_function、function_exists判断函数是否存在

create_function 格式&#xff1a;create_function(‘参数’,‘函数体代码’) 作用&#xff1a;创建匿名函数 <?phpheader(content-type:text/html;charsetutf-8);$func create_function($a,$b, return ($a$b););echo $func(10,20); ?>function_exists 返回值为boo…

python中dict函数_dict()函数以及Python中的示例

python中dict函数Python dict()函数 (Python dict() function) dict() function is a library function, it is used to create a dictionary with keywords( Ids) and values (s), it accepts a set of values with keywords, values and returns a dictionary. dict()函数是…

最佳ASP.NET编程习惯

初学编程的朋友往往喜欢收集一些很“奇妙”的编程技巧&#xff0c;然而&#xff0c;技巧的积累往往并没有提高程序质量&#xff0c;反而引导一些编程者一味追求奇和新&#xff0c;忘记了基本编程习惯的培养&#xff0c;不利于团队的合作&#xff0c;可能&#xff0c;这也是中国…

php的传值与传址

默认情况下&#xff0c;函数的参数都表示是值传递&#xff0c;但是&#xff0c;如果在定义函数的参数前面加上取地址符&#xff0c;表示传递的是地址值 传值&#xff1a; <?phpheader(content-type:text/html;charsetutf-8);function changeValue($num){$num10;}$value5;c…

IBM System p5 服务器 HACMP 安装指南

一. 系统需求 1.1 硬件需求 IBM HACMP 支持所有 IBM System p5 服务器。 1.2 软件需求 1.2.1 AIX 与 RSCT 版本要求 AIX 5L Version RSCT Version RSCT Filesets AIX 5L Version 5.3 TL1 2.4.2 rsct.compat.basic.hacmp 2.4.2.0 rsct.compat.clients.hacmp 2.4.2.0 rsct.…

学java要学vue吗_学vue之前必看

Vue学习1.1 vue.js是什么&#xff1f;​ Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。另一方面&#xff0c…

python 全局_全局关键字,带Python示例

python 全局Python全局关键字 (Python global keyword) global is a keyword (case-sensitive) in python, it is used to declare a global variable inside a function (from a non-global scope). global是python中的一个关键字(区分大小写)&#xff0c;用于在函数内部声明…

php中函数的默认值,参数的顺序

形式参数可以在定义时候给参数赋一个默认值&#xff0c;默认值不能是一个变量&#xff0c;可以是常量&#xff0c;当调用函数时&#xff0c;如果没有参数&#xff0c;函数就会按照默认值处理&#xff0c;如果传递了参数&#xff0c;就按照传递的参数处理 <?phpheader(cont…

.NET Enterprise Services Performance

http://msdn.microsoft.com/library/default.asp?url/library/en-us/dncomser/html/entsvcperf.asp?frametrue Summary: See the performance of native COM and .NET Enterprise Services components when applied to different activation and calling patterns. Get guide…

10款精选的用于构建良好易用性网站的jQuery插件

这篇随笔收集了10款非常给力的jquery 插件&#xff0c;帮助你构建易用性良好的网站&#xff0c;希望对你有用&#xff01; Embedded help system 看过该插件demo后&#xff0c;感叹道&#xff0c;真是太棒了&#xff01; 点demo里的How to下面的几个链接看看效果:) Embedded …

常见的Java审计代码函数关键字_转载:Java代码审计汇总系列(一)——SQL注入

原文链接&#xff1a;https://cloud.tencent.com/developer/article/1534109一、代码审计相比黑盒渗透的漏洞挖掘方式&#xff0c;代码审计具有更高的可靠性和针对性&#xff0c;更多的是依靠对代码、架构的理解&#xff1b;使用的审计工具一般选择Eclipse或IDEA&#xff1b;审…

python中bool函数_bool()函数以及Python中的示例

python中bool函数Python bool()函数 (Python bool() function) bool() function is used to convert a given value to the Boolean value (True or False) as per the standard truth testing procedures. It accepts a value (like an integer, list, maps, etc) and convert…

php中函数参数个数问题

形参大于实参 <?phpheader(content-type:text/html;charsetutf-8);function fun($name,$sex,$age){echo 名字是.$name,<br>;echo 性别是.$sex,<br>;echo 年龄是.$age,<br>;}fun(DL_one,21); ?>可以看出&#xff0c;能执行但报错 实参个数大于形参个…

忘记交手机费,招商银行的自助缴费不错!

最近一直太忙,结果手机费忘记交了,前天一拨电话,"对不起,您的手机已欠费",不过,只是限制呼出,还能接(全球通这点还是挺人性化的,不过是否值50大洋的月租?) 今天上网用一卡通缴费,点完确定,系统提示缴费成功,手机立即就可以拨出去了.效率还是很高的,省了我不少麻烦. …

java criteria exist_Java Criteria.addExists方法代碼示例

import org.apache.ojb.broker.query.Criteria; //導入方法依賴的package包/類/*** see org.kuali.kfs.module.bc.document.dataaccess.BudgetConstructionLockDao#getOrphanedPositionLocks(java.lang.String)*/public List getOrphanedPositionLocks(String lockUnivId) {Cri…

python实例31[解析buildlog]

简单地解析VisualStudio的buildlog&#xff1a;&#xff08;有的时候log文件太长&#xff0c;但是我们只是关心warning和error&#xff0c; 通过该程序可以直接得到所有的warning和error的行&#xff09; importrewarninglist []warninglist.append("warning C\d{4}"…

php的静态变量static在函数内部

静态变量放在函数内 <?phpheader(content-type:text/html;charsetutf-8);function fun(){static $num1;$num;echo $num,<br>;}fun();fun(); ?>静态变量放在函数内&#xff0c;作用域没变&#xff0c;生命周期变了&#xff0c;页面执行完毕才销毁&#xff0c;静态…

java json帮助类_java 写一个JSON解析的工具类

上面是一个标准的json的响应内容截图&#xff0c;第一个红圈”per_page”是一个json对象&#xff0c;我们可以根据”per_page”来找到对应值是3&#xff0c;而第二个红圈“data”是一个JSON数组&#xff0c;而不是对象&#xff0c;不能直接去拿到里面值&#xff0c;需要遍历数组…

关键字驱动测试示例_带有示例的False关键字

关键字驱动测试示例Python False关键字 (Python False keyword) False is a keyword (case-sensitive) in python, it is a Boolean value (a value of class type bool). False is the result of a comparison operation. False是python中的关键字(区分大小写)&#xff0c;它是…

DC (域控制器)上 DNS 不查询非掌管 Domain(域) 的解决办法 --(转)

如何移除根 DNS 区域 运行 Windows Server 2003 的 DNS 服务器在它的名称解析过程中遵循特定的步骤。DNS 服务器首先查询它的高速缓存&#xff0c;然后检查它的区域记录&#xff0c;接下来将请求发送到转发器&#xff0c; 最后使用根服务器尝试解析。 默认情况下&#xff0c;Mi…