ElasticSearch:使用查询字符串进行 IN 查询

ElasticSearch: Using query string for IN queries

我正在尝试做一些类似于 SQL 中的 IN 语句的事情,例如

SELECT * FROM es_index WHERE in_col in ('v1', 'v2', 'v3') AND match_col='v4';

我需要在 ElasticSearch 中使用 查询字符串 (这是必须的)来执行此操作,因为只有此功能对我公开,所以我尝试了

// GET /_search
{
  "query": {
    "query_string": {
      "query": "(in_col: [v1, v2, v3]) AND (match_col:v4)"    
    }
  }
}

但是它给了我一个解析错误

Cannot parse 'in_col: [v1, v2, v3]': Encountered \" \"]\" \"] \"\" at line x, column y.\nWas expecting:\n    \"TO\" ...\n

有什么想法吗?

IN 基本上是一个 OR 条件,所以你可以这样做

{
  "query": {
    "query_string": {
      "query": "in_col:(v1 OR v2 OR v3) AND match_col:v4"    
    }
  }
}