elasticsearch搜索引擎开发实战 pdf,elasticsearch search api

  elasticsearch搜索引擎开发实战 pdf,elasticsearch search api

  从本文开始,elasticsearch的介绍将进入数据功能部分(index),包括索引的创建和管理、数据索引和搜索等相关功能。对于这一部分的介绍,我们首先分析各个功能模块,然后详细分析数据索引和搜索的整个过程。

  这部分从代码包结构上可以分为index、indexes和lucene(common)。index包中的代码主要是每个函数对应lucene的底层操作,它们的操作对象是index的shard,是elasticsearch对lucene每个函数的扩展和封装。indexes是index函数的封装,对底层索引的大部分集群操作都是通过这部分提供的接口进行的。常用包下的Lucene部分代码主要是对索引的一些读操作(索引级别)的封装。例如读取索引元数据、搜索中使用的一些过滤器的实现等。

  在索引部分,封装了lucene,为es提供了索引操作的各种功能的接口。如编解码器,这部分是写lucene索引的部分。在4.x之后,这部分被分离成一个单独的层,它被封装在这里。Postformat是lucene中倒排表的编写格式,封装后通过postingformatservice对外提供。具体的后置格式由postprovide提供。其继承关系如下:

  通过外部调用postingservice的Get方法获取对应的postingprovider。代码如下:

  public PostingsFormatProvider get(String name)抛出elasticsearchilegargumentexception { PostingsFormatProvider provider=providers . get(name);if(provider==null){ throw new elasticsearchilegargumentexception( failed to find postions _ format[ name ]);}退货提供方;}这里的提供是在服务初始化时注入的。当然,1.5版本只使用默认的DefaultPostingFormatProvider。postformat的获取是通过postingprovider的get方法,对应的postingformat初始化总是在构造方法中实现:

  public DefaultPostingsFormatProvider(@辅助字符串名,@辅助设置postingsFormatSettings){ super(name);this . min block size=postingsformatsettings . getas int( min _ block _ size ,BlockTreeTermsWriter)。默认_最小_块_大小);this . maxblocksize=postingsformatsettings . getas int( max _ block _ size ,BlockTreeTermsWriter)。DEFAULT _ MAX _ BLOCK _ SIZE);this . postingsformat=new Lucene 41 postingsformat(min blocksize,maxBlockSize);}你可以看到这是lucene的postingformat初始化的地方。这部分的实现大部分类似于编解码器的实现,下面的分析会详细介绍其中的一些。写索引的方法都在Engine里。这里封装了所有写索引的方法,后面会详细分析。

  lucene在常用部分的功能基本都是读取lucene。例如,读取段信息的方法如下:

  公共静态SegmentInfos readSegmentInfos(Directory目录)抛出io exception { final SegmentInfos sis=new SegmentInfos();sis.read(目录);返回sis}直接调用lucene的segmentInfos类读取段信息。这部分后面会单独分析,这里只是简单介绍一下。

  索引部分是shard的基本接口。这里的操作都是针对单机的单个shard(lucene index),不涉及集群。索引部分通过封装索引的相关函数,为索引的集群操作提供相关接口。和这里的store部分一样,只提供了一个实现类IndiceStore,它的实现如下所示。

  它实现了几个句柄类来处理来自集群的相关请求。和之前结束的处理程序一样,这些内部类会接收并处理属于这个节点的请求,并将属于这个节点的请求转发给对应的节点。

  以上是elasticsearch数据(索引)部分的代码结构。这里只是简单概述,后面会详细分析相应的部分。更多关于elasticsearch的指数数据功能,请关注风行IT的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • php读取pdf数据,php pdf读取
  • php读取pdf数据,php pdf读取,PHP中使用mpdf 导出PDF文件的实现方法
  • kotlon协程,深入理解kotlin协程pdf,一文彻底搞懂Kotlin中的协程
  • 深入解析C#(第4版),深入解析css pdf,深入解析contentWindow, contentDocument
  • java 反射机制原理与用法详解视频,java 反射机制原理与用法详解pdf
  • java 反射机制原理与用法详解视频,java 反射机制原理与用法详解pdf,Java 反射机制原理与用法详解
  • ,,Java使用iTextPDF生成PDF文件的实现方法
  • ,,Python利用PyMuPDF实现PDF文件处理
  • 漫画算法小灰的算法之旅pdf,漫画算法2-小灰的算法进阶
  • devops和自动化运维实践 PDF,devops思想在运维方面的具体实践
  • pdf如何去除水印,pdf去水印的三种方法
  • 把a4的内容打印成a3小册子,a4的pdf文档如何打印成a3
  • nlp自然语言处理入门pdf,精通python自然语言处理 pdf
  • 容器docker基本操作,每天5分钟玩转docker容器技术 pdf
  • sklearn中文手册pdf下载,sklearn库模块及函数
  • 留言与评论(共有 条评论)
       
    验证码: