Czy jest możliwe zaktualizowanie niektórych konkretnych pól wartości w elastycznym wyszukującym bez nadpisywania innych pól. ?Zaktualizuj tylko określoną wartość pola w elastycznym wyszukującym
Odpowiedz
można wykonać następujące czynności:
- dostać
- zaktualizować swoje pole dokumentowi
- napisać dokument z powrotem
to samo dla Solr
jeśli tylko napisz nowy dokument (z istniejącym ID) i wypełnij tylko jedno pole, które chcesz zaktualizować, kto le document (wszystkie pozostałe pola) zostanie nadpisany
Zapoznaj się z elasticsearch [update api] (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-update.html), który nie wymagać przedłożenia całego dokumentu samodzielnie, ale pozwala przesłać częściowy dokument lub skrypt. – javanna
Tak, Elasticsearch obsługuje częściowe aktualizacje. Oznacza to, że można złożyć:
- częściowy dokument, który zostanie połączony z istniejącym jednym
- skrypt, który zostanie wykonany w górnej części istniejącego dokumentu
Zapraszamy do obejrzenia update api. W obu przypadkach, co dzieje się pod maską, z powodu działania biblioteki leucene, jest to, że dokument do aktualizacji jest pobierany, zmiany są do niego stosowane, a stary dokument zostanie zastąpiony nowym. Pod koniec dnia jest to w rzeczywistości kompletna przeróbka dokumentu, ale nie musisz przesyłać całego dokumentu, chyba że wyłączyłeś domyślnie włączone _source field, które jest polem pozwalającym odzyskać całość dokument w celu zastosowania zmian w nim.
Jako kontynuację możesz rzucić okiem na to pytanie http://stackoverflow.com/questions/28937946/elasticsearch-particial-update-of-not-indexed-field –
Jako codebased wkład do tej odpowiedzi, poniższa kwerenda może być stosowany:
POST /index/type/100100471/_update
{
"doc" : {
"yourProperty" : 10000
}
}
Ta kwerenda aktualizuje yourProperty
właściwość tylko.
W wyniku tego pojawia się odpowiedź:
{
"_index": "index",
"_type": "type",
"_id": "100100471",
"_version": 1,
"_shards": {
"total": 0,
"successful": 1,
"failed": 0
}
}
mogę wiedzieć, czy moja odpowiedź była pomocna? – javanna
Tak, dziękuję za pomoc. Korzystam z formatu skryptu i postępuję zgodnie z [update api] (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-update.html) –
Świetnie, możesz więc chcesz zaakceptować odpowiedź ... – javanna