【问题标题】:How to delete old documents from lucene index (filter by Date parameter)如何从 lucene 索引中删除旧文档(按日期参数过滤)
【发布时间】:2016-01-27 17:31:41
【问题描述】:
我是 lucene 的新手(我正在使用 JAVA),我已经尝试阅读所有现有的答案以找到解决我的问题的方法。不幸的是我没有解决我的问题,所以我试着再问你这个问题:
我有一个日期参数。我需要删除 lucene 索引中所有早于该 Date 参数的文档。我该怎么做?我找到了一种使用方法 isDeleted 的解决方案,但不幸的是,目前已弃用。感谢您的建议!
【问题讨论】:
标签:
java
indexing
lucene
documents
【解决方案1】:
您可以使用IndexWriter.DeleteDocuments方法删除与任意查询匹配的所有文档,例如:
String dateString = DateTools.dateToString(myCutoffDate, DateTools.Resolution.DAY);
Query dateQuery = TermRangeQuery.newStringRange("dateField", null, dateString, false, false);
myIndexWriter.DeleteDocuments(dateQuery);