我想编辑solr中提交的文档,例如编辑作者姓名,所以我在solrj中使用以下代码:
params.set("literal.author","anaconda")
但作者在模式中多值=“true”,因为“anaconde”没有替换它的先前名称并添加到作者姓名的末尾,如果我省略了多值字段或将其设置为false在使用新作者字段重新索引文件时发生错误请求异常,如何解决此问题并删除或修改solrj中的先前文档字段? 或者我在架构中错过任何配置吗? 感谢
答案 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,因为这个补丁很新,而且还在继续。