我们正在使用Solr 1.4。
如何在一个月前删除文件?
答案 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)