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. ?

Author: Johnsa Philip, 2013-10-24

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.

 14
Author: javanna, 2013-10-25 07:06:33

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
   }
}
 9
Author: pedrouan, 2016-11-06 16:38:56