lucene学习笔记(七)lucene近实时搜索

时间:2021-07-20 03:09:02

近实时搜索

Lucene3.5起提供了NRTManager管理近实时搜索。原理:将搜索存放到内存中,每个一定时间提交到硬盘中。

NRTManager和SearchManager是线程安全的

使用NRTManager获取SearchManager。并且使用NRTManager进行修改操作。其修改操作只是保存在内存中,只有writer.commit()时才保存到硬盘中。

NRTManager是每个一定时间调用一次maybeReopen()方法,如果有更改则重新打开searcher。是通过线程控制maybeReopen()调用的

比如每个10秒钟调用一次 maybeReopen(),那么搜索会延迟10秒钟。这就是近实时搜索。

indexWriter最好是单例的。

SearchManager

lucene学习笔记(七)lucene近实时搜索

使用SearchManger获取IndexSearcher

lucene学习笔记(七)lucene近实时搜索
第二和第三个参数为空也可,Lucene会自动帮我们管理。

lucene学习笔记(七)lucene近实时搜索

NRTManager

lucene学习笔记(七)lucene近实时搜索
删除:
lucene学习笔记(七)lucene近实时搜索
必须提交才可以写到硬盘中,否则只是在内存中
lucene学习笔记(七)lucene近实时搜索