Как сделать атомарные обновления для 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) перезапишет / обновит документ. Таким образом, вы можете просто написать новый документ, установив уникальный идентификатор, совпадающий со старым, который вы хотите обновить, или вы можете извлечь старый документ, внести изменения и получить новую запись, используя этот обновленный документ; так как его идентичный идентификатор вы все равно будете перезаписывать / обновлять.

Другие вопросы по тегам