布尔值(bool)查询 | 学习笔记

简介: 快速学习布尔值(bool)查询

开发者学堂课程【ElasticSearch 入门精讲布尔值(bool)查询学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/631/detail/10023


布尔值(bool)查询


内容介绍:

一、求一个并集和或者的关系

二、must,should,must_not 的用法


一、求一个并集和或者的关系

→返回匹配address=mill&address=lane

curl-XPOST'localhost:9200/bank/_ search? pretty'-d

{

"query”:{

"bool":{

"must":[

{"match":{"address":"mill"}},

{"match":{"address":"Iane"}}

]

}

1.举例运行以下代码:

'{

"query”:{

"bool":{

"must":{

"match":{

"address":"Iane"

}

}

运行结果:

可以观察到现在结果包含 Lane

image.png

2.举例运行以下代码:

{

"query”:{

"bool":{

"must":{

"match":{

"address":"mill"

}

}

运行结果:

提交请求后可以得到如下图,

注意:must 是一个数组,里面是有两个结果。

image.png

3.代码形式变成如下

{

"query”:{

"bool":{

"must":[

{"match":{"address":"mill"}},

{"match":{"address":"Iane"}}

]

运行结果:

验证 JSON,结果如图。

image.png


二、must,should,must_not的用法

→must:要求所有条件都要满足(类似于&&)

should:任何一个满足就可以(类似于||)

must _ not:所有条件都不能满足(类似于!(&&))

→返回匹配address=mill or address=lane

curl-XPOST'localhost:9200/bank/search? pretty'-d

'{

"query":{

"bool":{

"should":[

{"match":{"address":"mill"}},

{"match":{"address":"|ane"}}

]

(1)must--运行如下代码

"query”:{

"bool":{

"must":[

{"match":{"address":"mill"}},

{"match":{"address":"Iane"}}

]

运行结果:

验证 JSON,结果如图。must 里面包含两种接受类数据,并且 match 中也是接收类数据

image.png

(2)should--运行如下代码

{

"query”:{

"bool":{

"should":[

{"match":{"address":"mill"}},

{"match":{"address":"Iane"}}

        ]

运行结果:

满足条件的记录已经显示出,既包括mill有包含lane

image.png

should:任何一个满足就可以(类似于ll)

→返回不匹配address=mill&address=lane

curl -XPOST 'localhost:9200/bank/search? Pretty’-d

'{

“query":{

“bool”:{

"must_not":[

{"match":{"address":"mill"}},

{"match":{"address":"Iane"}}

]

(3)must_not 运行如下代码

{

"query”:{

"bool":{

"must_not":[

{"match":{"address":"mill"}},

{"match":{"address":"Iane"}}

]

}

运行结果:

该结果是既没有 mill 也没有 lane,两者都不满足。

image.png

→must _ not:所有条件都不能满足(类似于!(&&))

返回age=40&state!=ID

curl -XPOST 'localhost:9200/bank/search? pretty' -d

‘{

“query":{

“bool":{

“must”:[

{"match":{"age":40}}

],

"must_not”:[

{“match”:{"state":“ID”}}

]

}

上述是一个满足一个不满足。

(4) must和must_not--代码举例

{

"query”:{

"bool":{

"must":[

{

"match":{

"age":"40"

}

},

“must_not”:{

"match":{"state":"ID"

}

}

运行结果:

age 都是等于40,并且 state 都不等于ID

image.png

(5)举例:

代码举例:

{

"query”:{

"bool":{

"must":{

"match":{"state":"ID"

}

}

运行结果:

State 的结果均是 ID

image.png

代码举例:

{

"query”:{

"bool":{

"must":[

{

"match":{

"state":"ID"

}

},

{

"match":{"age":"40"

}]

运行结果:

选择出 state 为 ID,并且年龄是40的

image.png

不满足条件举例:

{

"query”:{

bool":{

"must_not":

{

"match":{

"state":"ID"

}

},

{  “must”:{

"match":{"age":"40"

运行结果:

State 不等于 ID,age依旧是40

image.png

相关文章
|
存储 机器学习/深度学习 计算机视觉
稠密矩阵
稠密矩阵是一种特殊形式的矩阵,其中所有元素都是非零的。与稀疏矩阵相比,稠密矩阵在存储和计算时需要更多的空间和计算资源,因为它的所有元素都需要被存储和计算。
496 7
|
监控 Kubernetes Go
全链路追踪 & 性能监控,GO 应用可观测全面升级
当前,大多数面向 Golang 应用的监控能力主要是通过 SDK 方式接入,需要开放人员手动进行埋点,会存在一定问题。对此,可观测 Go Agent 应运而生。本文介绍的阿里云可观测 Go Agent 方案,能通过无侵入的方式实现应用监控能力。
109563 102
|
运维 监控 BI
zabbix强大的报警系统
zabbix强大的报警系统
419 8
|
SQL 数据可视化 安全
微软SQL Server可视化工具与技巧
微软SQL Server不仅提供了强大的数据库管理功能,还集成了多种可视化工具,帮助用户更直观地理解和管理数据
1094 5
|
NoSQL Java 关系型数据库
软件开发常用之若依修改之添加数据库,添加redis,利用RDM连接宝塔
软件开发常用之若依修改之添加数据库,添加redis,利用RDM连接宝塔
|
测试技术 定位技术 API
万字长文:一文彻底搞懂Elasticsearch中Geo数据类型查询、聚合、排序
万字长文:一文彻底搞懂Elasticsearch中Geo数据类型查询、聚合、排序
95877 140
|
安全 Shell 数据安全/隐私保护
CI/CD笔记.Gitlab系列:控制台强制修改root用户密码
CI/CD笔记.Gitlab系列:控制台强制修改root用户密码
905 2
|
存储 缓存 数据库连接
Entity Framework Core 跨数据库查询超厉害!多数据库连接最佳实践,让你的开发更高效!
【8月更文挑战第31天】在现代软件开发中,跨数据库查询是常见需求。Entity Framework Core(EF Core)作为强大的ORM框架,支持多种方法实现这一功能。本文介绍了在EF Core中进行跨数据库查询的最佳实践,包括:理解数据库上下文、使用多个上下文进行查询、处理数据库连接与事务,以及性能优化策略。通过创建独立的数据库上下文如`UserContext`和`OrderContext`,并在业务逻辑中同时使用它们,可以轻松实现跨库查询。此外,利用`TransactionScope`可确保事务一致性,从而提高系统的可靠性和效率。
1094 0
|
JSON JavaScript API
Vue2和Vue3axios的如何使用,Vue3全局配置axios,axios全局配置
Vue2和Vue3axios的如何使用,Vue3全局配置axios,axios全局配置
|
负载均衡 算法
Envoy 负载均衡与限流设计
【2月更文挑战第29天】Envoy负载均衡策略包括优先级、恐慌阈值、区域感知和资源限制。它按优先级分配流量,使用恐慌阈值避免健康节点过载,实现区域内的首选服务选择,并通过资源管理限制上游集群的连接和请求数。此外,Envoy提供全局限流功能,在网络和HTTP层面对通信进行控制,确保服务器稳定性。