Actualizar apenas o valor específico do campo na pesquisa elastica
é possível actualizar o valor de alguns campos específicos na pesquisa elastica com a substituição de outros campos. ?
2 answers
SIM, a Elasticsearch suporta actualizações parciais. Isso significa que você pode submeter:
- um documento parcial, que será fundido com o existente
- UM programa que será executado no topo do documento existente
Dá uma vista de olhos à api de actualização. Em ambos os casos, o que acontece sob o capô, devido à forma como funciona a biblioteca lucene subjacente, é que o documento a ser atualizado é recuperado, as alterações são aplicadas a ele, e o documento antigo é substituído pelo novo. No final do dia, na verdade, é uma reescrita completa do documento, mas você não tem que se submeter a todo o documento, a menos que você desativou o _source campo, ativado por padrão, que é o campo que permite que você recuperar a todo o documento, a fim de aplicar as alterações.
Como contribuição baseada no código para esta resposta, pode ser utilizada a seguinte consulta:
POST /index/type/100100471/_update
{
"doc" : {
"yourProperty" : 10000
}
}
Esta pesquisa actualiza yourProperty
apenas Propriedade.
Como resultado, esta resposta aparece:
{
"_index": "index",
"_type": "type",
"_id": "100100471",
"_version": 1,
"_shards": {
"total": 0,
"successful": 1,
"failed": 0
}
}