在我的solr架构(Solr4.1)中,我有2个字段
<timestamp>
<status>
我想更新/更改超过14天的文档状态,但不会从索引中删除它们。
我目前正在删除它们
curl http://localhost/solr/update?commit=true -H "Content-Type: text/xml" --data-binary '<delete><query>timestamp:[* TO NOW-14DAYS] </query></delete>'
我想知道我是否可以根据时间戳值确定的文档年龄将状态字段更改为某个名义文本值“已过期”或“已存档”等。
由于
答案 0 :(得分:0)
我能够通过以下方式解决这个问题。 似乎Solr可以通过查询等删除,但不能通过查询更新。 在我的情况下,我只是想更新文档的一个字段,而不是重新索引文档,而不是删除它,只是根据它的年龄更新它(例如,使文档过期,但仍然在索引中,如果需要可以找到它)
我所做的是使用csv响应编写器,我将查询时间戳:[* TO NOW-14DAYS]保存到csv文件中。 现在我有一个csv文件,其中包含上述查询中的所有文档(或您需要的任何查询)
然后,您可以快速查找/替换您想要更改的值,例如“已发布”更改为“未发布”或其他内容。 保存csv。 重新索引/提交。
大约5分钟。
Solr4.x确实需要一个查询更新字段,但这是一个非常简单的工作来找我。