Mam przypadek użycia, w którym współbieżne żądania aktualizacji trafiają do mojego klastra Elasticsearch. Aby upewnić się, że nieaktualne zdarzenie (takie, które jest nieistotne dla nowszego żądania), nie aktualizuje dokumentu po tym, jak nowsze zdarzenie już dotarło do klastra, chciałbym przekazać skrypt z żądaniami aktualizacji, aby porównać pole aby ustalić, czy żądanie przychodzące jest istotne, czy nie. Żądanie będzie wyglądać następująco:Używanie skryptu do warunkowego aktualizowania dokumentu w Elasticsearch
curl -XPOST 'localhost:9200/test/type1/1/_update' -d '
{
"script": " IF ctx._source.user_update_time > my_new_time THEN do not update ELSE proceed with update",
"params": {
"my_new_time": "2014-09-01T17:36:17.517""
},
"doc": {
"name": "new_name"
},
"doc_as_upsert": true
}'
Czy pseudo kod, który napisałem w polu "skrypt" jest dostępny w Elasticsearch? Jeśli tak, chciałbym pomóc przy składni (groovy, python lub javascript).
Wszelkie sugestie dotyczące alternatywnego podejścia będą również bardzo mile widziane.
udało ci się znaleźć rozwiązanie tego? Próbowałem tego podejścia, ale nie działało. – animageofmine
@animageofmine znalazłeś rozwiązanie? – Anant
@ Anant spojrzeć na mój post tutaj: https://discuss.elastic.co/t/conditional-update-to-the-document/64964/16 – animageofmine