使用solrj更新文档字段

时间:2011-10-23 11:23:17

标签: solr solrj

我想编辑solr中提交的文档,例如编辑作者姓名,所以我在solrj中使用以下代码:

params.set("literal.author","anaconda")

但作者在模式中多值=“true”,因为“anaconde”没有替换它的先前名称并添加到作者姓名的末尾,如果我省略了多值字段或将其设置为false在使用新作者字段重新索引文件时发生错误请求异常,如何解决此问题并删除或修改solrj中的先前文档字段? 或者我在架构中错过任何配置吗? 感谢

5 个答案:

答案 0 :(得分:4)

我所知道的唯一选择是使用solrj将完整文档(使用&fl=*参数的所有字段)查询到本地构造中,更新相应的字段,然后将整个文档提交回Solr

答案 1 :(得分:2)

不存在no way to update specific field for an document in Solr,也不通过任何客户端apis。

编辑: - 使用Solr 4.0,可以部分更新包含某些字段的文档。

答案 2 :(得分:2)

这个post应该是您问题的正确答案(如果您使用的是SOLR 4.x)

答案 3 :(得分:1)

对于Solr 4.0,您可以更新文档上的单个字段,但如果您担心,该版本是ALPHA。

但是对于更新的东西,它只能通过CURL我认为,我没有找到任何方法来通过solrj更新java端的doc上的单个字段。

答案 4 :(得分:0)

您有两种选择:

如其他答案中所述,您可以查询原始文档,更新字段,然后重新保存,将使用新值覆盖原始文档。

您的另一个选择是安装Solr的每晚版本,其中Yonik添加了可更新文档的补丁。你应该留意https://issues.apache.org/jira/browse/SOLR-139,因为这个补丁很新,而且还在继续。