我正在使用Lucene.Net(版本2.9.4.1)實現簡單的搜索模塊。我想,如果使用下面的代碼在索引中存在刪除文件,無法刪除lucene索引中的現有文檔
var analyzer = new StandardAnalyzer(Version.LUCENE_29);
var indexWriter = new IndexWriter(
LuceneSearch._luceneDir,
analyzer,
IndexWriter.MaxFieldLength.UNLIMITED);
var searchQuery = new TermQuery(new Term("ListID", listingDoc.Get("ListID")));
indexWriter.DeleteDocuments(searchQuery);
其中listingDoc
是Document
我試圖刪除該文件,如果它存在,然後再次將它添加到的類型索引,添加部分工作正常,但刪除部分不工作,即文件不存在時不刪除。因此,如果我搜索一個術語,它匹配它顯示多次...請指出我在這裏做錯了什麼
我使用ASP.Net MVC3和實體Framework4。每次記錄更新時,我都打算更新索引,但是它已被複制。當我搜索它,我得到的結果兩次或三次取決於我做更新的次數。
我試着用indexWriter.UpdateDocument(args);
無濟於事......
你提交你的修改和刷新IndexSearchers你刪除的文件後? –
@JfBeaulac yup'indexWriter.Commit();' –
UpdateDocument是否會導致相同的重複行爲,或者它只是沒有做任何事情? – itsadok