弹性搜索查询通过通配符过滤掉ID

时间:2014-09-16 21:47:16

标签: lucene elasticsearch

我希望创建一个查询,它将过滤掉包含通配符的ID。例如,除了ID包含单词current之外,我想在任何地方搜索。这可能吗?

1 个答案:

答案 0 :(得分:0)

是的,可以使用Regex Filter / Regex Query。我无法找到使用补语选项直接执行此操作的方法,因此我暂时使用bool must_not来解决您的问题。如果可能的话,我会稍后改进答案。

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