2016-09-06 62 views
1

我是Lucene.net的新手。我一直在試圖從Lucene索引文件中刪除一個文檔。但不幸的是,我無法完成它。無法從Lucene索引中刪除文檔

這是我的代碼。

public void DeleteDocuments() 
{ 
    Term term = new Term("id", id); 
    Analyzer analyzer = new StandardAnalyzer(LuceneVersion.LUCENE_30); 
    Directory directory = FSDirectory.Open(filePath); 
    IndexWriter writer = new IndexWriter(directory, analyzer, IndexWriter.MaxFieldLength.UNLIMITED); 
    writer.DeleteDocuments(term); 
    writer.Optimize(); 
    writer.Commit(); 
    writer.Dispose(); 
} 

無法從索引中刪除文件的文檔。請幫助我。

在此先感謝。

+0

您是否收到錯誤? – Prescott

+0

索引目錄中是否有write.lock文件? –

回答

0

您的問題可能是您用於「id」字段的分析器。

如果您的ID包含字母,StandardAnalyzer將以小寫字母將它們編入索引。這意味着您創建的術語可能與索引「ABC」與「abc」的值不同。

您需要確保該字段是在不進行分析的情況下創建的。