这里的provides在service初始化时注入,当然es的1.5版本只是使用了默认的DefaultPostingFormatProvider。postformat的获取则是通过postingprovider的get的方法,而对应的postingformat初始化在构造方法总实现:
可以看到这里就是初始化了lucene的postingformat。这一部分的实现多数都跟codec的实现类似,后面的分析中会对其中的一些做详细的介绍。对于写索引的方法都在Engine中。这里封装了所有对于索引写操作的方法,后面会详细分析。
关于common部分的lucene的功能基本都是对lucene的读操作,如对于segment信息读取的方法如下所示:
直接调用了lucene的segmentInfos类读取segment信息。这一部分在后面会单独分析,这里只是简单介绍一下。
index部分是shard基本的接口,这里的操作都是针对于单个机器单个shard(lucene index)的操作,不涉及集群。而indice部分则通过封装index的相关功能为集群对于index的操作提供了相关接口。如这里的store部分,只是提供了一个实现类IndiceStore,它的实现如下所示。
它实现了多个handle类用于处理来自集群的相关请求。跟之前结束的handler一样,这些内部类会接收处理属于本节点的请求,转发属于本节点请求到对应节点。
以上就是elasticsearch数据(index)部分的代码结构。这里只是简单的概述,后面会对对应的部分进行详细分析,更多关于elasticsearch索引index数据功能的资料请关注七叶笔记其它相关文章!