Elasticsearch布尔查询——bool
2024-10-18 19:28:14
布尔查询允许我们利用布尔逻辑将较小的查询组合成较大的查询。
1、查询返回包含“mill”和“lane”的所有的账户
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
"query": {
"bool": {
"must": [
{ "match": { "address": "mill" } },
{ "match": { "address": "lane" } }
]
}
}
}'
在上面的例子中,bool must语句指明了,对于一个文档,所有的查询都必须为真,这个文档才能够匹配成功。
2、查询返回地址中包含“mill”或者“lane”的所有的账户
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
"query": {
"bool": {
"should": [
{ "match": { "address": "mill" } },
{ "match": { "address": "lane" } }
]
}
}
}'
在上面的例子中,bool should语句指明,对于一个文档,查询列表中,只要有一个查询匹配,那么这个文档就被看成是匹配的。
3、查询返回地址中既不包含“mill”,同时也不包含“lane”的所有的账户
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
"query": {
"bool": {
"must_not": [
{ "match": { "address": "mill" } },
{ "match": { "address": "lane" } }
]
}
}
}'
在上面的例子中, bool must_not语句指明,对于一个文档,查询列表中的的所有查询都必须都不为真,这个文档才被认为是匹配的。
我们可以在一个bool查询里一起使用must、should、must_not。此外,我们可以将bool查询放到这样的bool语句中来模拟复杂的、多等级的布尔逻辑。
下面这个例子返回40岁以上并且不生活在ID(daho)的人的账户:
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
"query": {
"bool": {
"must": [
{ "match": { "age": "" } }
],
"must_not": [
{ "match": { "state": "ID" } }
]
}
}
}'
最新文章
- mysql的缓冲查询和非缓冲查询
- HTML之CSS学习
- AD RMS 配置指南 附结合SharePoint使用
- 打开Windows10网络发现或是文件打印共享
- Maven基础配置--nexus私服配置
- linux tail命令的使用方法详解(转)
- magic矩阵
- BestCoder Round #76 解题报告
- MapReduce 支持的部分数据挖掘算法
- 使用CButtonColumn自定义CGridiew里面的按钮
- Http Clinet使用
- NULL和nullptr的区别
- 朝花夕拾-4-shell
- Web API-属性路由
- 【小白成长撸】--多项式求圆周率PI
- 基于 webpack 的 chrome 扩展开发探索
- Oracle基础知识整理
- JS-使用工厂方法创建对象
- 像素数据YUV简介与觉存储格式介绍
- dos脚本7章