在Elasticsearch-dsl中将查询与多个值匹配

时间:2019-07-03 04:19:30

标签: elasticsearch elasticsearch-dsl elasticsearch-dsl-py

我正在尝试编写一个查询,其中多个值应与该字段匹配。

在该示例中,我尝试使用查询中的匹配字段来获取所有月份的结果。我不知道的是,如何在dsl中编写此查询?

months = [2,3,4]
client = Elasticsearch()
    s = Search(using=client, index="namco_revenuestream")
s = s.query("match", month_period=months)

1 个答案:

答案 0 :(得分:0)

您可以使用terms query代替match查询,如下所示:

{
  "query": {
    "terms": {
      "month_period": [2,3,4]
    }
  }
}

编辑:使用match

查询
{
  "query": {
    "match": {
      "month_period": {
        "query": "2 3 4",
        "analyzer": "standard"
      }
    }
  }
}