Lucene.net索引文件的并发访问和线程安全性(转)
操????作
是否允许
对同一个索引运行多个并行的搜索进程
允许
对一个正在生成、被优化或正在与另一索引合并的索引运行多个并行的搜索进程,或该索引正在进行删除、更新文档等操作时,对索引运行多个并行的搜索进程
允许
对同一个索引用多个IndexWriter对象执行添加、更新文档的操作
不允许
当一个从索引中删除文档的IndexReader对象没有成功关闭时,打开一个IndexWriter对象用于在这个索引中添加新的文档
不允许
IndexWriter对象向索引中添加新文档后,未成功关闭;在此之后,打开一个IndexReader对象用于从这个索引中删除文档
不允许
注意当正在修改一个索引时,在同一个索引上只能执行一个修改操作。?
1.IndexReader对象在从索引中删除一个文档时,IndexWriter对象不能向其中添加文档。
2.IndexWriter对象在对索引进行优化时,IndexReader对象不能从其中删除文档。
3.IndexWriter对象在对索引进行合并时,IndexReader对象也不能从其中删除文档。
我们可以得到这样一个使用模式:当IndexWriter对象在对索引进行修改操作时,IndexReader对象不能对索引进行修改。这个操作模式是对称的:当IndexReader对象正在对索引进行修改操作时,IndexWriter对象同样也不能对索引进行修改。
?