使用多个应该查询

时间:2018-05-06 16:03:48

标签: elasticsearch

我希望获得与多个“群组”相似但分开的文档。每个小组都有自己的规则(条款)。 当我尝试使用多个应该在“bool”中查询时,我得到的项目都是两个应用项的混合。 我想使用1个查询总数而不是msearch例如。

有人可以帮助我吗?

{
 "explain": true,
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must_not": [
            {
              "term": {
                "p_id": "123"
              }
            },
            {
              "term": {
                "p_id": "124"
              }
            }
          ]
        }
      },
      "query": {
        "bool": {
          "minimum_should_match": 1,
          "should": [
            {
              "bool": {
                "minimum_should_match": 1,
                "should": [
                  {
                    "term": {
                      "cat": "1"
                    }
                  },
                  {
                    "term": {
                      "cat": "2"
                    }
                  },

                  {
                    "term": {
                      "keys": "a"
                    }
                  },
                  {
                    "term": {
                      "keys": "b"
                    }
                  }
                ]
              }
            },
            {
              "bool": {
                "minimum_should_match": 1,
                "should": [
                  {
                    "term": {
                      "cat": "6"
                    }
                  },
                  {
                    "term": {
                      "cat": "7"
                    }
                  },
                  {
                    "term": {
                      "keys": "r"
                    }
                  },

                  {
                    "term": {
                      "keys": "u"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    }
  },
  "from": 0,
  "size": 3
}

1 个答案:

答案 0 :(得分:0)

您可以尝试在脚本上使用多个字段上的术语聚合,并将顶部命中聚合添加为子聚合。请注意,这将非常缓慢。在查询/过滤后添加此项并根据需要调整大小参数

ManyToOne