我已配置 solr 6.6.1 进行测试设置。在索引了一些文档后,我必须更新一些字段。我正在使用 python 客户端solr https://pythonhosted.org/solrpy/reference.html。要更新,以下是我的代码片段
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 或我的代码有什么问题?
API没有问题。您要求 solr 添加一个文档,该文档的 ID 字段已存在于您的集合中。以下操作发生在 solr 中。
删除具有相同 ID 的现有文档
添加仅包含该 API 调用中指定字段的新文档
您正在寻找的解决方案是部分更新一个文档的。
请参阅参考链接以了解更多信息原子更新 https://lucene.apache.org/solr/guide/6_6/updating-parts-of-documents.html#UpdatingPartsofDocuments-AtomicUpdates
您需要发送文档中要更新的字段的地图对象。
solr_conn2.add(id=_id, group2=*****)
group2 的值必须是这样的映射 {'set':'value...'}
你或许可以参考这个类似的stackoverflow解决方案类似的答案 https://stackoverflow.com/a/42097254/2591220
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)