Posts in 2022
Lucene IndexWriter
2022-04-29 in NoSQL
IndexWriterConfig IndexDeletionPolicy:Lucene开放对commit point的管理,通过对commit point的管理可以实现例如snapshot等功能。Lucene默认配置的DeletionPolicy,只会保留最新的一个commit point Similarity:搜索的核心是相关性,Similarity是相关性算法的抽象接口,Lucene默认实现了TF-IDF和BM25算法。相关性计算在数据写入和搜索时都会发生,数据写入时的相关性计算称 …
ES 分布式原理Data篇
2022-04-28 in NoSQL
Replication写入流程 ES中每个Index会划分为多个Shard,Shard分布在不同的Node上,以此来实现分布式的存储和查询,支撑大规模的数据集。对于每个Shard,又会有多个Shard的副本,其中一个为Primary,其余的一个或多个为Replica。数据在写入时,会先写入Primary,由Primary将数据再同步给Replica。在读取时,为了提高读取能力,Primary和Replica都会接受读请求 1. 检查Active的Shard …
ES 分布式原理Meta篇
2022-04-28 in NoSQL
Meta数据 Master节点管理Meta数据并通知其他节点,来驱动各个模块工作,比如创建Shard等 Meta是用来描述数据的数据。在ES中,Index的mapping结构、配置、持久化状态等就属于meta数据,集群的一些配置信息也属于meta。这类meta数据非常重要,假如记录某个index的meta数据丢失了,那么集群就认为这个index不再存在了。ES中的meta数据只能由master进行更新 Meta数据结构 集群中的每个节点都会在内存中维护一个当前的ClusterState,表示当前 …
ES 分布式原理Node篇
2022-04-27 in NoSQL
ES集群构成 配置文件 conf/elasticsearch.yml node.master: true node.data: false 当node.master为true时,其表示这个node是一个master的候选节点,可以参与选举,在ES的文档中常被称作 master-eligible node,类似于Leader和Candidate的关系。当node.data为true时,这个节点作为一个数据节点,会存储分配在该node上的shard的数据并负责这些shard的写入、查询等。此外,任何 …