Solr4.1无法删除超过30天的文档

时间:2013-02-27 23:53:25

标签: solr

我正在运行Solr4.1。 我有一个版本字段,但我不明白如何通过查询删除时间。我的架构中没有任何字段,其中包含我可以看到的时间戳。

我要做的是运行一个查询,删除超过30天的所有文档。

我已经尝试了我能在网上找到的所有内容。

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

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

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

其他删除工作正常,例如

curl http://localhost:8983/solr/update?commit=true -H "Content-Type: text/xml" --data-binary '<delete><query>field:value</query></delete>'

1 个答案:

答案 0 :(得分:2)

您可以启用schema.xml中包含的timestamp字段,只需将其注释掉即可。每次将文档插入索引时,该字段将使用当前日期时间自动填充。在schema.xml中查找以下内容:

 <!-- Uncommenting the following will create a "timestamp" field using
      a default value of "NOW" to indicate when each document was indexed.
   -->
 <!--
 <field name="timestamp" type="date" indexed="true" stored="true" 
    default="NOW" multiValued="false"/>
 -->

您需要重新索引文档,以便设置此值。