lucene-线程安全性
程序员文章站
2022-05-15 12:36:07
...
1、lucene不允许使用多个IndexWriter或IndexReader实例同时对一个索引进行修改。但这2个类都是线程安全的
2、2个类的实例都可以被多线程共享,Lucene会对各个线程中所有对索引进行修改的方法的调用进行恰当的同步处理,以保证修改操作能一个接一个有序进行。
3、恰当的处理是指保证这2个类的对象对索引的修改操作不能重叠,使用IndexWriter对象将新文档增加到索引之前,必须关闭所有已经完成在同一个索引上,进行删除操作的IndexReader实例。同样,在IndexReader对象对索引中的文档进行删除和更新之前,必须关闭此前已经打开该索引的IndexWriter实例。
4、
1)IndexReader对象在从索引中删除一个文档时,IndexWriter对象不能向其中增加文档
2)IndexWriter对象在对索引进行优化时,IndexReader对象不能从其中删除文档
3)IndexWriter对象在对索引进行合并时,IndexReader对象也不能从其中删除文档