ELK,萌萌哒

一个简单常见的场景中的问题

Elasticsearch | 作者 Charele | 发布于2023年08月10日 | 阅读数:1642

111.PNG

 
比如,没索引时。你简单的插入一个文档(它会自动建索引,建分片)
标的这3个数字,作用用过ES的人都明白。现在是1,0,1
 
现在我把ES关了。重新开启了一下,然后继续执行这个操作,
(等于把这个文档update了一下下)

222.PNG

你会发现,这三个数字都+1了,变成了2,1,2
 
问题不是它们的作用,太复杂,
百度一下很多相关介绍的文章
 
问题很简单:
在关闭ES时,这3个数值,分别存在哪里的呢???
已邀请:

caryliang - es使用工程师

赞同来自:

你是想问存在哪个文件,怎么存的吗?

Charele - Cisco4321

赞同来自:

_version这个,是对的。
其他两个不对。
 
_version, _seq_no, _primary_term这三个值是会记录在文档里
(也就是你说的段文件里),这没错。
 
但起在这里作用的,不是记录在文档里的那些值。
 
就说_seq_no:
打个比方,一个新索引(新分片),
你加了10个新文档,最后你看到的_seq_no是10,
(实际_seq_no是从0开始的,为了说明方便,假设从1开始,不影响)
 最后一个文档,它里的记录的_seq_no是10
 
然后,你一个一个把这10个文档都删除了
删除文档也会使这个_seq_no增加,最后你看到的_seq_no是20
 
然后,你关闭了ES,重新启动。
 
你又插入一个新文档,这时候,ES肯定要去某个地方找到这个20,
然后+1, 这个新文档的_seq_no就是20 + 1 = 21了。
 
请问:在你关闭ES后,这个20存在哪呢?

要回复问题请先登录注册