zoukankan      html  css  js  c++  java
  • Elasticsearch布尔查询——bool

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

    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": "40" } }
                  ],
                  "must_not": [
                    { "match": { "state": "ID" } }
                  ]
                }
              }
            }'
  • 相关阅读:
    POJ2516 构图+k次费用流
    POJ 1511 最短路径之和(spfa或dijkstra+heap)
    windows中配置mongodb
    原型设计
    Erlang的参考资源
    用Erlang实现递归查找文件
    list相关的习题
    springmvc基础知识
    汇编实验4
    实验3 转移指令跳转原理及其简单应用编程
  • 原文地址:https://www.cnblogs.com/hcy-fly/p/7986893.html
Copyright © 2011-2022 走看看