使用带有Or运算符的术语查询

时间:2013-09-02 11:11:17

标签: elasticsearch

我试图以下列方式使用术语查询!!

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "technology": "Space"
          }
        },
        {
          "term": {
            "Person": "Steve Simon"
          }
        }
      ]
    }
  }
}

这会返回一个Feed的响应,其中两个字段都存在于单个Feed中,就像交叉操作一样。我是否可以使用术语查询来获取上述查询的UNION结果,例如,我希望所有包含spaceSteve Simon的Feed都与包含两者的Feed一起显示。

1 个答案:

答案 0 :(得分:3)

使用should代替must。此外,您必须将minimum_should_match设置为1,这意味着匹配文档只需要一个should子句。

{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "technology": "Space"
          }
        },
        {
          "term": {
            "Person": "Steve Simon"
          }
        }
      ],
      "minimum_should_match": 1
    }
  }
}