如何在一个月前删除文件

pen*_*oli 5 lucene solr

我们正在使用Solr 1.4.

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

Pai*_*ook 7

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

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

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

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

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

<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
Run Code Online (Sandbox Code Playgroud)


lin*_*rik 5

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

java -Ddata=args -Dcommit=yes -jar post.jar "<delete><query>$DateField:[* TO $DateOneMonthAgo]</query></delete>"
Run Code Online (Sandbox Code Playgroud)

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