Apache IndexWriter deleteDocuments功能不工作

Apache IndexWriter deleteDocuments功能不工作,apache,lucene,Apache,Lucene,此处Writer.deleteDocuments不起作用。因此,每次我索引一个文件时,它不会删除已经存在的文件,然后创建一个新的文件,而只是复制它 这与work.lock文件有关吗?您似乎注释掉了将IndexItem.ID字段添加到文档中的行。如果未将该字段添加到文档中,则调用deleteDocuments将找不到该字段上的任何匹配项,并且不会删除任何内容。哦,很抱歉,这是我的键入错误,错误已解决。谢谢您的回复。@myk。你是怎么解决的?我也有类似的问题。 public void index(I

此处Writer.deleteDocuments不起作用。因此,每次我索引一个文件时,它不会删除已经存在的文件,然后创建一个新的文件,而只是复制它


这与work.lock文件有关吗?您似乎注释掉了将
IndexItem.ID
字段添加到文档中的行。如果未将该字段添加到文档中,则调用
deleteDocuments
将找不到该字段上的任何匹配项,并且不会删除任何内容。

哦,很抱歉,这是我的键入错误,错误已解决。谢谢您的回复。@myk。你是怎么解决的?我也有类似的问题。
public void index(IndexItem indexItem) throws IOException {
    writer.deleteDocuments(new Term(IndexItem.ID,indexItem.getId().toString()));                    
    Document doc = new Document();
    // doc.add(new LongField(IndexItem.ID, indexItem.getId(), Field.Store.YES));
    doc.add(new TextField(IndexItem.CONTENT, indexItem.getContent(), Field.Store.NO));
    doc.add(new StringField(IndexItem.PATH, indexItem.getPath(), Field.Store.YES));

    // add the document to the index
    writer.addDocument(doc, analyzer);


    writer.updateDocument(new Term(IndexItem.CONTENT, indexItem.getContent().toString()), doc);
    System.out.println(indexItem.getTitle()); 
    writer.close();
}