ES搜索快有一部分原因是因为在内存中就已经可以进行搜索了,先对搜索文档进行分词,并在倒排索引中进行搜索,是先在内存中进行查找搜索吗,内存没有的话去哪里进行查找呢,是磁盘吗,请大神指点。
Elasticsearch | 作者 laohan | 发布于2020年11月09日 | 阅读数:1713
ES搜索快有一部分原因是因为在文件系统缓存中(此时在内存中)就已经可以进行搜索了,我想知道更具体的流程,比如说我想搜索“中文社区”,会对其进行分词为“中文”,“社区”,并在倒排索引中进行搜索,是在内存中进行查找搜索吗,内存中的倒排索引,如果内存中没有的话,去哪里进行查找呢,毕竟会进行持久化操作,如果是磁盘的话,速度不会降低嘛,对这个流程感到一些疑惑,请大神指点。
6 个回复
zmc - ES PAAS、JuiceFS
赞同来自: laohan
1.请求先经过内存中的倒排索引结构(FST)
2.再根据FST查找的结构找到具体的磁盘位置,然后去磁盘中拿原始数据
如果再倒排索引结构中没有找到,流程就结束了。
补充一个细节图:(将图中字典树结构替换成FST结构即可,lucene4之后修改的)
JiangJibo - 喊我雷锋
赞同来自:
pony_maggie - 公众号:犀牛饲养员的技术笔记
赞同来自:
zmc - ES PAAS、JuiceFS
赞同来自:
JiangJibo - 喊我雷锋
赞同来自:
guoyanbiao520
赞同来自: