zoukankan      html  css  js  c++  java
  • Lucene 写入一个文档到该文档可搜索延迟是多少?

    我看的是最初版的lucene,1.4.3

    结论是新写入的文档会先写入内存中,只有当到达一定阈值后才会刷新进磁盘,而搜索可以搜索到的数据由最初定义IndexSearcher时磁盘里的段数据决定,如果想要新写入的文档能立马被搜索到,则需要将搜索客户端IndexSearcher刷新,在1.4.3里我看只有重新调用IndexReader.open()方法来刷新。

    新文档写入的逻辑:

      每写入一个新的文档会在内存中新建一个段来放这个文档

      lucene会定义一个最小合并文档数和最大合并文档数,默认最小合并文档数是10,最大合并文档数是Integer.MAX

      在内存中会保存当前整个索引所有段的一个列表,这个列表像一个栈,后来的在最上面,而包含新建文档的段当然也在最上面,由于这样的段只包含一个文档,所以正常的流程是当添加了10个文档后开始进行合并(这个合并策略在代码里叫增量合并,就是先合并10个文档,再合并 10 * 10(合并因子) = 100 个文档,然后合并 10*10*10 = 1000个文档)

      合并操作会新建一个段(每次新建段,段的前缀都是全局递增)来存放这些需要合并段的数据,在合并以后会将合并后的段写入磁盘

  • 相关阅读:
    http://caibaojian.com/jquery/ JQuery在线查询手册
    验证码
    显式提交/隐式提交 //ajax方式的隐式提交
    事物 银行转账业务
    模板 Template
    登录页面跳转与错误提示信息
    连接池 八种基本类型
    文件,文件夹的基本操作--------数据流的传输
    vim编辑器
    Linux中创建和使用静态库&动态库
  • 原文地址:https://www.cnblogs.com/caiyao/p/11766068.html
Copyright © 2011-2022 走看看