Как сделать атомарные обновления для Solr с помощью Pysolr?
Я не могу найти достойную документацию о том, как сделать обновления для Solr с помощью Pysolr.
3 ответа
В настоящее время вы не можете делать атомарные обновления в Solr, используя PySolr. Есть тяга для этого:
https://github.com/toastdriven/pysolr/pull/99
Но это еще не было объединено. Последний комментарий был менее месяца назад, если вы заинтересованы, я бы прокомментировал его - или попытался бы объединить код самостоятельно, если вы чувствуете, что это правильно.
С ноября 2014 года атомарные обновления поддерживаются с помощью pysolr. Вот простой пример:
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
Использование того же уникального идентификатора Solr и обычной записи (с solr.add) перезапишет / обновит документ. Таким образом, вы можете просто написать новый документ, установив уникальный идентификатор, совпадающий со старым, который вы хотите обновить, или вы можете извлечь старый документ, внести изменения и получить новую запись, используя этот обновленный документ; так как его идентичный идентификатор вы все равно будете перезаписывать / обновлять.