0

在我的 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>'

我想知道我是否可以根据时间戳值确定的文档年龄将状态字段更改为一些名义文本值“过期”或“存档”等。

谢谢

4

1 回答 1

0

我能够通过以下方式解决此问题。似乎 Solr 可以通过查询等方式删除,但不能通过查询进行更新。在我的情况下,我只是想更新文档的一个字段,而不是重新索引文档,不删除它,只是根据它的年龄更新它(例如,使文档过期但仍将其保存在索引中,以便在需要时找到它) .

我所做的是使用 csv 响应编写器,我将查询时间戳:[* TO NOW-14DAYS] 保存到 csv 文件中。现在我有一个 csv 文件,其中包含上述查询中的所有文档(或您需要的任何查询)

然后,您可以快速查找/替换要更改的值,例如“已发布”更改为“未发布”或其他内容。保存 .csv。重新索引/提交。

总共花了大约5分钟。

Solr4.x 确实需要通过查询来更新字段,但这对我来说是一个非常简单的工作。

于 2013-03-14T01:15:11.477 回答