嘿~ 今天天气不错嘛

关于ES聚合查询中的collect模式深度优先和广度优先算法的一些疑问

Elasticsearch | 作者 yqbboy | 发布于2022年03月01日 | 阅读数:1241

一直不太明白,深度优先和广度优先的的适用场景及底层原理
问题1:深度优先和广度优先都会在内存中进行吗?
问题2:为什么es默认使用深度优先,我感觉广度优先的适用场景范围更广才对啊。
 
之前参考过:https://elasticsearch.cn/question/9087 ,但是还是没搞清楚。
 
哪位大神能解释的更简单明了一些啊,谢谢啦
已邀请:

Marquezzzz

赞同来自:

问题1,是的,或者说又不是,如果启用了虚拟内存,当物理内存不足时,会出现内存swap,系统性能急剧下降。
问题2,官方文章 /guide/cn/elasticsearch/guide/current/_preventing_combinatorial_explosions.html 已经说得很清楚了,在例子中其实是一种对group by的查询优化,并不是典型的bfs和dfs。
bfs和dfs的算法,可以看一下相关书籍,做一些leetcode题就好了,主要是树和图的算法。

Charele - Cisco4321

赞同来自:

我感觉应该没人可以回答这个问题。
能回答的都是看了网上的文档,似是而非的答案。

要回复问题请先登录注册