布尔值(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

相关文章
|
1月前
|
Python
bool(布尔类型)
bool(布尔类型)。
51 2
|
1月前
如何判断`instanceof`操作符的返回值是否为`true`
`instanceof`操作符用于判断一个对象是否是指定类型或其子类型的实例。如果对象是指定类型的实例,则返回`true`,否则返回`false`。例如:`if (obj instanceof MyClass)` 会检查 `obj` 是否是 `MyClass` 类或其子类的实例。
61 3
|
7月前
|
算法 测试技术 编译器
【C++ 基本类型 bool 】深入探索C++中的布尔类型Boolean(二 )
【C++ 基本类型 bool 】深入探索C++中的布尔类型Boolean
182 0
|
7月前
|
程序员 编译器 C语言
【C++ 基本类型 bool 】深入探索C++中的布尔类型Boolean(一)
【C++ 基本类型 bool 】深入探索C++中的布尔类型Boolean
672 0
|
7月前
|
JavaScript 前端开发
JavaScript快速删除对象数组中某一个指定元素。注意:是对象数组,如果是数值数组,请慎用!会伤及无辜0、false、英文空格、undefined、null。
JavaScript快速删除对象数组中某一个指定元素。注意:是对象数组,如果是数值数组,请慎用!会伤及无辜0、false、英文空格、undefined、null。
|
C语言 C++
C++ bool 类型
C++ bool 类型
122 0
|
存储 数据库
案例09-数据类型不一致导致equals判断为false
数据类型不一致导致equals判断为false
案例09-数据类型不一致导致equals判断为false
|
JavaScript
js:常见对象的类型判断typeof和布尔值Boolean
js:常见对象的类型判断typeof和布尔值Boolean
119 0
|
开发者
布尔值(bool)查询|学习笔记
快速学习布尔值(bool)查询。
107 0
布尔值(bool)查询|学习笔记