如何在查询中包装ElasticSearch过滤器

为了在ElasticSearch中使用
percolator,我需要索引搜索查询.但是,我们主要使用过滤器进行搜索.为了索引这些过滤器,它们必须是
wrapped inside a query.

我知道有两种不同的方法来实现这一目标.将过滤器包裹在filtered query中:

{
  "query": {
    "filtered": {
      "filter": { ... }
    }
  }
}

或使用constant_score query

{
  "query": {
    "constant_score": {
      "filter": { ... }
    }
  }
}

哪种方法更受青睐?为什么?

最佳答案 虽然两者都会产生相同的结果,并且应该具有非常接近的性能,但我更喜欢使用过滤查询.它非常清楚地传达了意图.几个月后,你可能会从同一个问题开始,并想知道为什么你关心分数. 🙂

点赞