更新RAMDirectory的最佳方法

时间:2012-03-18 14:30:27

标签: java lucene

在不一致的时间间隔内,需要更新Lucene索引中的特定文档。更新可以是每小时或每隔几分钟。目前我有一个运行并查找更改的进程,如果发生了更改,它(以Lucene 3.5方式)删除文档,然后将其重新添加到RAMDirectory。

  1. 有没有更好的方法来管理不断变换的文档的Lucene索引? RAMDirectory是最佳选择吗?
  2. 我用来“更新”索引的代码:

    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);
    

1 个答案:

答案 0 :(得分:1)

Lucene最近有两个非常有用的辅助类来处理频繁变化的索引:

您可以在Mike McCandless' blog了解更多相关信息。