Oi ,
Tenho um documento sobre pesquisa elástica no formato abaixo.
{
"id": 1,
"nome": "Uma porta verde",
"preço": 12,50,
"tags": ["home", "green"]
}
agora eu quero atualizar o mesmo documento com o novo valor no array "tags".
o novo valor é "amarelo".
depois de atualizar "amarelo" para o documento existente, Meu documento deve ser exibido como abaixo.
{
"id": 1,
"nome": "Uma porta verde",
"preço": 12,50,
"tags": ["home", "green", "yellow"]
}
Pergunta: Como mesclar um novo valor com os valores existentes?
Alguém, por favor, me oriente sobre isso?
Basta reindexar o documento e ele o atualizará. Consulte http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-index_.html
Olá Markwalkom,
ReIndex o documento está substituindo / atualizando os valores antigos para novos valores.
Quer dizer, eu poderia ver o seguinte json após reindexar ou chamar a API de atualização e upsert.
{
"id": 1,
"nome": "Uma porta verde",
"preço": 12,50,
"tags": ["amarelo"]
}
Na saída json, perdi meus valores antigos da tag array
"tags": ["home", "green"]
Java Api's para atualizar o documento existente ou criar um novo documento se não sair.
IndexRequest indexRequest = new IndexRequest ("usuário", "teste", "1")
.source (construtor);
UpdateRequest updateRequest = new UpdateRequest ("usuário", "teste", "1")
.doc (construtor)
.upsert (indexRequest);
client.update (updateRequest) .get ();
Isso é exatamente o que está acontecendo nos bastidores. Atualizar API obter o documento anterior, mesclar valores, indexar o novo documento completo.
BTW, por favor, faça perguntas na lista de discussão. Este espaço é para questões ou solicitações de recursos.