我已经为测试设置配置了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或我的代码中有什么问题?
答案 0 :(得分:2)
API中没有问题。您要求solr添加一个文档,其中包含您的集合中已存在的ID字段。 solr中会发生以下操作。
删除具有相同ID的现有文档
添加仅包含该API调用中指定的字段的新文档
您正在寻找的解决方案是文档的部分更新。
请参阅参考链接,了解有关此Atomic updates
的更多信息您需要为要在文档中更新的字段发送地图对象。
solr_conn2.add(id=_id, group2=*****)
group2的值必须是这样的地图{'set':'value ...'}
您可以参考类似的stackoverflow解决方案similar answer