在Elasticsearch查询中填充数组值

时间:2019-02-19 05:52:38

标签: elasticsearch

我的部分Elasticsearch查询如下:

  

“ match_phrase”:{               “ taskId.keyword”:{                 “查询”:“”               }

我在js程序中动态设置taskId。但是这种结构允许我将其设置为单个id,因此调用仅获取单个记录。

我的程序中可以有多个任务ID。所以我想获取任务ID数组的记录。

如何构造查询呢?

我能这样吗?

  

“ match_phrase”:{“ taskId.keyword”:{“ query”:[]               }

然后动态设置数组:

  

.... match_phrase ['taskId.keyword'] =动态计算的任务ID数组

1 个答案:

答案 0 :(得分:0)

您可以使用terms query来匹配多个taskId。 使用如下查询:

{
  "query":{
    "terms":{
      "taskId.keyword":["taskId1", "taskId2", "taskId3"]
    }
  }
}

您可以在应用程序代码中将["taskId1", "taskId2", "taskId3"]替换为动态创建的taskId数组。