首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在elasticsearch查询中,术语查找-过滤器聚合顺序是否会影响执行时间(效率)?

在elasticsearch查询中,术语查找-过滤器聚合顺序是否会影响执行时间(效率)?
EN

Stack Overflow用户
提问于 2017-06-06 04:15:42
回答 1查看 322关注 0票数 3

我使用术语-查找-过滤器聚合跟踪elasticsearch查询。这两个查询都会给出相同的结果。两个查询都有相同的筛选类型,不同之处是术语的顺序(位置)-查找-过滤器。

1.术语-查找过滤器位于过滤聚合的第二/最后位置。

代码语言:javascript
复制
  {
   "size": 0,
   "aggs": {
      "filterAggs": {
         "filter": {
            "and": {
               "filters": [
                  {
                     "range": {
                        "eligibleDates": {
                           "include_lower": true,
                           "include_upper": true,
                           "from": <fromDate>,
                           "to": <toDate>
                        }
                     }
                  },
                  {
                     "terms": {
                        "rollNo": {
                           "path": "student.rollNo",
                           "index": "<index_name>",
                           "id": "<record_id>",
                           "type": "<es Type>"
                        }
                     }
                  }
               ]
            }
         }
      }
   }
}

2.术语-查找过滤器位于过滤聚合的第一位。

代码语言:javascript
复制
{
   "size": 0,
   "aggs": {
      "filterAggs": {
         "filter": {
            "and": {
               "filters": [
                  {
                     "terms": {
                        "rollNo": {
                           "path": "student.rollNo",
                           "index": "<index_name>",
                           "id": "<record_id>",
                           "type": "<es Type>"
                        }
                     }
                  },
                  {
                     "range": {
                        "eligibleDates": {
                           "include_lower": true,
                           "include_upper": true,
                           "from": <fromDate>,
                           "to": <toDate>
                        }
                     }
                  }
               ]
            }
         }
      }
   }
}

在我的实验/测试中,第一次查询比第二次查询执行效率更高(7至10倍)。现在我的问题是,在elasticsearch查询中,术语查找-过滤器聚合顺序是否会影响执行时间(效率)?过滤器的位置顺序将如何影响执行时间?

EN

回答 1

Stack Overflow用户

发布于 2017-06-06 05:59:23

,No,,没关系,因为elasticsearch会通过特定的算法找到优化的执行顺序

我在一些文章中看到过,他们说您应该通过一些标准来排序过滤器/查询(例如,哪个应该先过滤),但是在阅读了一篇非常详细和准确的文章之后,发现它们是,不正确的。这是关于elasticsearch中过滤器/查询执行顺序的优秀文章:

如果您想优化您的查询,我建议您阅读以下内容:

优化弹性搜索

例如,您有range filter,可以使用Cache Granularity and Acceleration Filters部件对其进行优化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44381318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档