【发布时间】:2016-09-09 08:26:20
【问题描述】:
我想从大型索引中的多值字段中删除一个特定值,我需要首先查询哪些文档包含该值,即:
- 检索包含特定值的文档的 ID。
- 部分更新这些文档(使用
remove)。
Solr 版本是 5.1。如有必要,我可以更新,但更改日志未表明与此问题有任何相关性。
我已经通过 Solr Web 界面 (http://localhost:8983/solr/#/core/documents) 在 /select 端点上尝试了以下查询(有几种变体),试图从所有文档中删除该值:
{"id":"*", "field": {"remove":"value"} }
服务器响应为“成功”,但没有更新任何文档。
我可以做的是查询field:value,提取文档ID,并(以编程方式)为这些ID生成更新查询,类似于this answer中所指出的。但我希望应该有一个更直接的解决方案。
partial updates documentation 和其他相关网页中的示例在这里并不真正适用,因为它们假设更新文档的 ID 是预先知道的。 大多数其他关于类似问题的讨论都涉及旧版 Solr,在引入部分更新之前(在 Solr 4 中)。
【问题讨论】:
标签: solr