一尘不染

elasticsearch查询按通配符过滤出ID

elasticsearch

我希望创建一个查询,在其中将过滤出包含通配符的ID。例如,除了ID包含单词current之外,我想在所有地方搜索内容。这可能吗?


阅读 301

收藏
2020-06-22

共1个答案

一尘不染

是的,可以使用正则表达式过滤器
/正则表达式查询。我无法找到一种使用Complement选项直接执行此操作的方法,因此我已经bool
must_not暂时解决了您的问题。如有可能,我会在稍后完善答案。

POST <index name>/_search
{
   "query": {
      "match_all": {}
   },
   "filter": {
      "bool": {
         "must_not": [
            {
               "regexp": {
                  "ID": {
                     "value": ".*current.*"
                  }
               }
            }
         ]
      }
   }
}
2020-06-22