Вы можете использовать функцию оптимистичного параллелизма в Solr.
По сути, вы включаете значение из поля _version_
вашего документа в ваш запрос. Если введенное вами значение _version_
не соответствует значению в документе (т. Е. Документ был обновлен с момента его получения), обновление завершится неудачно и вместо него будет возвращен код ошибки 409 HTTP.
Клиент читает документ. В Solr можно получить документ
с обработчиком / get, чтобы иметь самую последнюю версию.
Клиент изменяет документ локально.
Клиент повторно отправляет измененный документ в Solr, например,
возможно с обработчиком / update.
В случае конфликта версий (код ошибки HTTP 409) клиент
начинает процесс заново.
Значение, указанное в поле _version_
, может определять, какое поведение вы хотите:
Если содержимое в поле _version_
больше 1 (т. Е.
«12345»), то _version_
в документе должно совпадать с _version_
в указателе.
Если содержимое в поле _version_
равно '1', то
документ должен просто существовать. В этом случае совпадение версий не происходит,
но если документ не существует, обновления будут отклонены.
Если содержимое в поле _version_
меньше 0 (т. Е. -1),
тогда документ не должен существовать. В этом случае нет соответствия версии
происходит, но если документ существует, обновления будут отклонены.
Если содержимое в поле _version_
равно '0', тогда оно не
не имеет значения, совпадают ли версии или документ существует или нет. Если оно
существует, оно будет перезаписано; если он не существует, он будет
добавлено.