DSL:查询结果过滤

应该尽可能使用过滤器。过滤器不影响评分,而得分计算让搜索变得复杂,而且需要CPU资源。

另一方面,过滤是一种相对简单的操作。由于过滤应用在整个索引的内容上,过滤的结果独立于找到的文档,也独立于文档之间的关系。

过滤器很容易被缓存,从而进一步提高过滤查询的整体性能。

我们使用post_filter参数保持例子尽可能地简单。然而,请记住,如果可能,应该总是使用filtered查询,而不是post_filter,因为filtered执行起来更快。

使用过滤器

在任何搜索中使用过滤器,只需在于query节点相同级别上添加一个filter节点。如果你只想要过滤器,也可以完全省略query节点。

GET devicelog_00/_search
{
  "query": {
    "match_all": {}
  },
  "post_filter": {
    "term": {
      "Items.name": "k1"
    }
  }
}
View Code

 

posted @ 2020-04-06 17:06  弱水三千12138  阅读(182)  评论(0)    收藏  举报