• Lucene:(一)建立索引文件:2。建立索引文件(一)


    写索引文件:

        索引文件在未合并前是有多个文件组成的,这些文件综合在一起,才为一个实质上的索引文件;这些文件拥有相同的名字,不同的是后缀名;下面,依次介绍这些文件,介绍方式为:从建立索引的类开始,一步步追踪,最后总结。

           IndexWriter类

           写索引文件从IndexWriter类开始。IndexWriter需要三个参数:分别是字典(Lucene自定义的,存放索引文件的虚拟目录),一个分词器和一个布尔变量(这个变量为重新建立索引或往原有的索引中添加,true为新建索引)。

        IndexWriter类创建索引是以一个一个文件作为单位来建立索引的,IndexWriter类通过addDocument函数将一个一个文件添加,并使用IndexWriter类将该文件添加到索引中。
    注:Lucene自己模拟了文件对象,该对象表示一个文件,为Document;addDocument函数的参数就是Document对象;

     IndexWriter的作用为建立索引和合并两部分。

     1。建立索引:

    IndexWriter使用SegmentInfos类写segment信息。
    Segment
    文件为Lucene索引文件中记录块信息的。块实际上包括多个文件的概述信息,这多个文件实际上就是建立这个索引文件的实际文件。


    IndexWriteraddDocument函数,调用DocumentWriter类,完成建立索引的余下操作。
    DocumentWriter类完成建立域信息文件,term信息文件等索引信息的建立。


    2。合并:
    Lucene有两种合并。


    第一种合并:
    IndexWriter
    类构造函数使用SegmentInfos类写索引文件的segment信息,其实并不是一开始就往硬盘上写,而是先往内存中写,到一定的数目合并写入硬盘。

    第二种合并:
    当索引文件(这里指硬盘上实际存在的索引文件)到一定的数目,这些索引文件合并;接着,循环这种合并。

    举例:这里假设合并因子为10。一个索引文件记载10个文件,当这样的文件有10个时,这些索引文件合并成一个100个文件的索引文件。接着,继续形成索引文件,又有10个记载10个文件的索引文件形成,这些文件合并成另一个100个文件的索引文件;当记载100个文件的索引文件有10个时,这些文件合并成记载1000个文件的索引文件;以下类推。



  • 相关阅读:
    javaWeb 使用 filter 处理 html 标签问题
    javaWeb 使用 filter 处理全站乱码问题
    Kubernetes常见部署方案--滚动更新、重新创建、蓝绿、金丝雀
    阿里云
    Kubernetes技术分析之灰度升级
    fetch进行post请求为什么会首先发一个options 请求?
    免费给你的网站加速,全球访问速度杠杠的
    抗DDOS,我选Cloudflare,免费!
    被骗几十万总结出来的Ddos攻击防护经验!------转自 服务器之家server
    微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布
  • 原文地址:https://www.cnblogs.com/wanghoney/p/1233668.html
Copyright © 2020-2023  润新知