3

我已经为测试设置配置了 solr 6.6.1。索引几个文档后,我必须更新几个字段。我正在使用solr的 python 客户端。要更新,以下是我的代码片段

import solr

def update_solr_index(_id, _value):
    print solr_conn2.add( id = _id, group2 = _value)

core_ulr = "http://localhost:8983/solr/use"
solr_conn2 = solr.SolrConnection(core_ulr)
update_solr_index(doc_id, field_value)

执行(和提交)后,所有其他字段都从所有文档中删除,只剩下两个字段,即 doc_id 和 group2。这个 API 或我的代码有什么问题?

4

1 回答 1

3

API没有问题。您要求 solr 添加一个文档,该文档的 ID 字段已存在于您的集合中。solr 中发生以下操作。

  • 删除具有相同 ID 的现有文档

  • 添加仅包含该 API 调用中指定的字段的新文档

您正在寻找的解决方案是文档的部分更新

请参阅参考链接以了解有关此Atomic 更新的更多信息

您需要为要在文档中更新的字段发送地图对象。

solr_conn2.add(id=_id, group2=*****)

group2 的值必须是这样的映射 {'set':'value...'}

您可能可以参考这个类似的stackoverflow解决方案类似的答案

于 2017-11-13T10:23:25.450 回答