0
如果間隔不一致,則需要更新Lucene索引中的特定文檔。更新可能是每小時或每隔幾分鐘。目前,我有一個運行並查找更改的進程,如果發生更改,它(以Lucene 3.5時尚方式)將刪除該文檔,然後將其重新添加到RAMDirectory中。更新RAMDirectory的最佳方式
- 有沒有更好的方法來管理不斷變換的文檔的Lucene索引? RAMDirectory是最佳選擇嗎?
我用 「更新」 的指數代碼:
Term idTerm = new Term("uid",row.getKey());
getWriter().deleteDocuments(idTerm);
getWriter().commit();
// do some fun stuff creating a new doc with the changes
getWriter().addDocument(doc);
每次更新文檔後都必須搜索文檔嗎?最簡單的方法是在不改變太多的情況下,延遲更新文檔直到一個固定的時間間隔 - 比如說每個小時 - 然後將它作爲批量傳遞並累積時間X和Y之間的所有更新。這會減少一些刪除每幾分鐘的性能開銷。 – FloppyDisk 2012-03-19 12:40:34