如何在一个月前删除文件

时间:2011-12-09 06:47:05

标签: solr lucene

我们正在使用Solr 1.4。

如何在一个月前删除文件?

2 个答案:

答案 0 :(得分:7)

我们正在做类似的事情,我们使用curl并利用Solr架构中的时间戳字段来清除其中一个索引中的项目。

以下是使用模式中的timestamp字段删除超过30天的项目(使用DateMathParser根据当天计算)的curl命令。

 curl "http://localhost:8983/solr/update?commit=true" -H "Content-Type: text/xml" 
   --data-binary "<delete><query>timestamp:[* TO NOW/DAY-30DAYS]</query></delete>"

当然,您需要更改网址以匹配您的solr实例,您可以选择使用其他字段。

此处还有示例文件夹中Solr发行版附带的schema.xml中的timestamp字段的字段定义。

<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>

答案 1 :(得分:5)

您需要POST以进行删除,但如果您使用安装中的示例文件夹中的post.jar,则只需:

java -Ddata=args -Dcommit=yes -jar post.jar "<delete><query>$DateField:[* TO $DateOneMonthAgo]</query></delete>"

其中$ DateField是存储日期的字段的名称,$ DateOneMonthAgo是从现在起一个月后的日期(2011-11-09T11:48:00Z)