Well,不要刷屏了

关于post_filter查询的性能问题

Elasticsearch | 作者 RegulusZ | 发布于2022年12月06日 | 阅读数:1535

集群版本5.4.2
索引配置1分片2副本,单分片大小1个多G
查询峰值100多,cpu几乎打满
慢查语句100多ms,简化后如下
GET index_name/_search
{
"from": 0,
"size": 3,
"post_filter": {
"bool": {
"must": [
{
"term": {
"xxxxxxxxxxx": {
"value": 11111111111,
"boost": 1
}
}
}]
}
}
}
使用Search Profile分析主要是MatchAllDocsQuery过程占用的时间,将post_filter替换为query后解决,查询在ms级,搜不到相关资料,请问有大佬了解post_filter对性能的影响吗

 
已邀请:

ywxk

赞同来自: brucegaochina

看看官方文档里面是怎么介绍post_filter的,它是在执行完查询后才会生效。
你这个语句就相当于先执行了MatchAllDocQuery后,在返回结果前再使用post_filter里面的条件做了一层过滤。
应该使用query关键字,这样在查询数据的时候带着条件筛选数据集。
 

要回复问题请先登录注册