java - 更新 RAMDirectory 的最佳方法

标签 java lucene

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

  1. 是否有更好的方法来管理不断转换的文档的 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);

最佳答案

Lucene 最近有两个非常有用的帮助器类来处理频繁更改的索引:

您可以在 Mike McCandless' blog 阅读有关它们的更多信息。 .

关于java - 更新 RAMDirectory 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9759130/

相关文章:

java - 向 Luke 添加自定义分析器

.net - 如何按相关性和 Lucene.net 中的另一个字段对搜索结果进行排序

java - Apache Lucene - S3 目录

java - 获取 pdf 文档 itext7 中的所有 acrosfields 可用项

java - 将日期转换为简单的 DD-MM-YYYY HH24 :MI:SS format in SQL

java - 如何迭代包含对象的 LinkedList - Java

java - Android 在哪里初始化 Activity 数据?

java - Lucene/Solr - 索引出版物/文本

elasticsearch - 如何在Elasticsearch中对未分析的字符串执行类似正则表达式的搜索

java - 如何通过创建另一个项目然后将其粘贴到该项目上来导入项目?