elasticsearch如何在匹配短语中包含同一字段的许多值

时间:2016-02-13 20:15:20

标签: elasticsearch

这是我的查询

{"match" : {"something": ["Balcony" , "Gym"]}}

我收到此错误:

Player

当我删除此行

SoundPlayer

它运行正常,但为什么该行会导致解析错误,因为json中的数组很好?

我的弹性搜索版本是2.2

1 个答案:

答案 0 :(得分:4)

错误来自解析器,在传递多个针时必须使用“OR”指定。

要修复你的情况,你必须更换

    {
  "match": {
    "something": [
      "Balcony",
      "Gym"
    ]
  }
}

使用

{
  "match": {
    "something": "Balcony OR Gym"
  }
}

所以最后看起来应该是这样的:

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "source": "balblabla"
          }
        },
        {
          "match": {
            "blablablab": "JBR"
          }
        },
        {
          "match": {
            "city": "blab bla"
          }
        },
        {
          "match": {
            "something": "Balcony OR Gym"
          }
        }
      ]
    }
  }
}

希望这会对您有所帮助并指出正确的道路:)

的问候, 丹尼尔