在我的例子中,插入lucene索引的每个文档都有其唯一的ID。在lucene索引中添加新文档时,如果文档已存在于索引中,则不应将该文档插入到索引中。如何实施这一策略?
我想我应该首先使用docId搜索文档,如果lucene找不到文档,那么我插入它。但是,因为我有3个线程共享唯一的indexWriter索引,我想应该有一些错误的情况。例如:线程1和线程2正在处理具有相同docId的两个文档,如果thread1搜索docId并且什么都没找到,它会将文档插入到索引中,但是thread2可以在thread1读取索引后将其文档插入索引。结果,索引中存在两个文档。我怎么能避免这个?