0
点赞
收藏
分享

微信扫一扫

【ElasticSearch】Elasticsearch核心概念

技术只适用于干活 2022-04-13 阅读 79

Elasticsearch核心概念

分片 shard

“分片”是Lucene的一个索引。 它本身就是一个功能齐全的搜索引擎。
“索引”可以由单个分片组成,但通常由多个分片组成,一部分主分片、一部分副本分片。
副本分片的用途:(1)主节点故障时的故障转移;(2)增加的读取吞吐量。

分段 segment

每个分片包含多个“分段”,其中分段是倒排索引。
分段内的doc数量上限是2的31次方。
默认每秒都会生成一个segment文件.
在分片中搜索将依次搜索每个片段,然后将其结果合并到该分片的最终结果中。
查看索引中分段信息的方法(Restful):

GET /test/_segments

倒排索引

“倒排索引”是Lucene用于使数据可搜索的数据结构。

translog日志文件

为了防止elasticsearch宕机造成数据丢失保证可靠存储,es会将每次写入数据同时写到translog日志中。

translog还用于提供实时CRUD。 当您尝试按ID检索,更新或删除文档时,它会首先检查translog中是否有任何最近的更改,然后再尝试从相关段中检索文档。 这意味着它始终可以实时访问最新的已知文档版本。

倒排索引是不可变的

写入磁盘的倒排索引永远不会改变。

好处:无需锁定,不用担心多进程操作更改数据导致数据不一致问题。

坏处:经常被问到的问题,更新了词典词库后,老的索引不能生效。如果要使其可搜索,则必须重建整个索引。建议:reindex操作。

分段不可变

分段是不可变的。更新文档时,它实际上只是将旧文档标记为已删除,并为新文档编制索引。合并过程还会清除这些旧的已删除文档。

举报

相关推荐

0 条评论