6
respostas

Criar no field com novo tipo e valores do campo desejado.

Oi,

enviei alguns dados ao elasticsearch e o mesmo criou o "campo 1" com o tipo string. O mesmo deveria ter sido criado como number porque eram valores. Ex. 0.20, 9.03.

Tentei usar o scripted fields para criar um novo campo com o tipo number porém não tive sucesso.

Durante o curso escutei que devemos criar o campo com valor original e esse campo não pode mais ser mudado e que se eu quiser deveria criar outro campo.

Como faço para criar um "campo 2", do tipo number e replicar os valores o "campo 1"

6 respostas

Ola Eduardo,

Sobre sua primeira pergunta. Nos seus documentos, você usou "campo 1": "0.20" ou "campo 1": 0.20? O primeiro vai ser inferido como string. O segundo vai ser inferido como float (Elasticsearch 5 ou posteriores) ou double (versões anteriores do Elasticsearch).

Evite usar scripted fields.

Para criar um campo 2, basta criar novos documentos que possuem este campo. Contudo, se quiser que todos os valores do campo 1 passem a serem copiados para campo 2, você precisa reindexar todos os documentos.

Eu nao sei exatamente se voce esta experimentando o elasticsearch ou usando em producao, contudo, sugiro você recriar o índice com os tipos de dados corretos, afinal você precisará re-indexar os documentos de qualquer maneira.

Exatamente isso que preciso Thadeu.

Como faço para copiar o valor de um campo para outro?

O ambiente é interno por enquanto.

Parabéns pelo curso, foi excelente.

O índice que quero user é mesmo.

Olá Eduardo,

Você precisa reindexar tudo. Simples assim. :)

Caso você tenha os dados em uma fonte externa (e.g.: um banco de dados, um arquivo csv, etc), basta re-executar seu script para importar os dados fazendo as alterações necessárias (e.g.: utilizar os valores como double para o o novo campo 2)

Caso você não tenha, vai precisar primeiro exportar os dados (veja scroll api - existe um link no curso) e reimportá-los fazendo as alterações necessárias.

Thadeu boa noite.

Achei o link e ainda não consegui sair do lugar.

Não posso apagar o índice, não tenho mais os logs.

Usei a versão 2.2 do ES.

Não entendo essa documentação. Teria uma forma mais detalhada, algum outro app, curso que você indica, pessoa, ferramenta, servidor ou algo?

Obrigado.

Se o seu índice não for grande (até alguns milhares de documentos), você pode exportar os dados com uma query que tenha um limite de registros maior que o seu, salvar em um arquivo e escrever um script que faça um bulk upload (isso nos fizemos no curso).

Uma outra opção é utilizar o Kibana para exportar seus dados em CSV.