0

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

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

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

4

5 回答 5

4

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

于 2011-10-24T01:24:46.787 回答
2

不,无法更新 Solr 中文档的特定字段,也无法通过其任何客户端 API 更新。

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

于 2011-10-23T16:41:15.880 回答
2

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

于 2013-01-05T07:14:38.263 回答
1

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

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

于 2012-08-10T06:32:09.323 回答
0

你有两个选择:

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

您的另一个选择是安装一个夜间版本的 Solr,其中 Yonik 为可更新文档添加了一个补丁。您应该密切关注https://issues.apache.org/jira/browse/SOLR-139,因为这个补丁非常新并且仍在开发中。

于 2012-08-07T15:04:11.127 回答