布尔查询允许我们利用布尔逻辑将较小的查询组合成较大的查询。

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" } }
]
}
}
}'

最新文章

  1. mysql的缓冲查询和非缓冲查询
  2. HTML之CSS学习
  3. AD RMS 配置指南 附结合SharePoint使用
  4. 打开Windows10网络发现或是文件打印共享
  5. Maven基础配置--nexus私服配置
  6. linux tail命令的使用方法详解(转)
  7. magic矩阵
  8. BestCoder Round #76 解题报告
  9. MapReduce 支持的部分数据挖掘算法
  10. 使用CButtonColumn自定义CGridiew里面的按钮
  11. Http Clinet使用
  12. NULL和nullptr的区别
  13. 朝花夕拾-4-shell
  14. Web API-属性路由
  15. 【小白成长撸】--多项式求圆周率PI
  16. 基于 webpack 的 chrome 扩展开发探索
  17. Oracle基础知识整理
  18. JS-使用工厂方法创建对象
  19. 像素数据YUV简介与觉存储格式介绍
  20. dos脚本7章

热门文章

  1. 运维必须掌握的150个Linux命令
  2. 在foreach的判断条件里执行方法会有效率问题吗?
  3. GitLab搭建详细过程
  4. python 保存命令执行结果
  5. 前端使用d3.js调用地图api 进行数据可视化
  6. 【手记】让Fiddler抓取入站请求,或者叫用Fiddler做反向代理
  7. idea for Mac 代码提示设置
  8. Office隐藏17年的漏洞CVE_2017_11882测试记录
  9. 父类清除浮动的原因、(清除浮动代码,置于CSS中方便调用)
  10. 延迟执行之 Invoke 函数