如何使用pysolr对solr进行原子更新?

时间:2014-06-25 18:11:20

标签: solr pysolr

我找不到关于如何使用pysolr更新solr的正确文档。

3 个答案:

答案 0 :(得分:6)

截至2014年11月,pysolr支持atomic updates。这是一个简单的例子:

url_solr = '''http://my.solr.com:8983/solr/mycore'''
solr = pysolr.Solr(url_solr)

doc = {'id':'rabid bananas', 'comment':'now half off!'}
solr.add([doc], fieldUpdates={'comment':'set'})
# the id 'rabid bananas' now has an updated comment

答案 1 :(得分:1)

您目前无法使用PySolr对Solr进行原子更新。有一个拉动:

https://github.com/toastdriven/pysolr/pull/99

但它尚未合并。最后评论不到一个月前,如果您感兴趣我会对其发表评论 - 或者如果您愿意,可以尝试自己合并​​代码。

答案 2 :(得分:0)

使用相同的唯一Solr ID并像往常一样(使用solr.add)将覆盖/更新文档。 因此,您可以编写新文档,设置唯一ID以匹配您要更新的旧文档,或者您可以提取旧文档,进行更改并使用该更新文档进行新写入;由于它的ID相同,你仍然会覆盖/更新。