如何通过curl的datetime字段查询删除SOLR索引数据?

时间:2012-03-24 22:27:48

标签: curl solr http-delete

我有一个像这样的日期时间字段。

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

我尝试通过curl查询删除rel_date字段上的某些特定日期。

curl http://$SOLR_IPADDR:$SOLR_PORT/solr/update/?commit=true -H "Content-Type: text/xml" -d "<delete><query>rel_date:\[2012-03-10\])</query></delete>"

但它在SOLR响应中收到无效的日期字符串错误。

  

HTTP状态400 - 无效日期字符串:'[2012-03-10]'

如何使用CURL查询删除SOLR记录上的特定日期?

3 个答案:

答案 0 :(得分:3)

你也需要时间。

来自DateField javadocs

  

日期字段的格式应为1995-12-31T23:59:59Z尾随   “Z”表示UTC时间并且是强制性的(参见下面的解释   UTC)。允许使用可选的小数秒,只要它们可以   不以尾随0结束(但是超过毫秒的任何精度都将是   忽略)。所有其他部分都是强制性的。

另请参阅:http://lucidworks.lucidimagination.com/display/lweug/Solr+Date+Format

答案 1 :(得分:0)

我是通过以下卷曲评论做到的:

  

卷曲http:// $ SOLR_IPADDR:$ SOLR_PORT / solr / update /?commit = true -H“Content-Type:text / xml”-d“(rel_date:[2012-03-10T00:00:00Z TO 2012-03-10T00:00:00Z])“

您必须从您的环境更改$ SOLR_IPADDR和$ SOLR_PORT。

答案 2 :(得分:0)

卷曲http://host:port/solr/core_name/update?commit=true -H“内容类型:text / xml” --data-binary '<delete><query>rel_date:[2019-03-25T00:00:01Z TO 2019-03-25T23:59:59Z]</query></delete>'