# Campo Geolocalização no Elastic como String

**URL:** <https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117>\
**Category:** Elastic em Português - Brasil\
**Created:** [September 1, 2020, 3:19pm UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117 "2020-09-01T15:19:31Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![correa.wlan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/correa.wlan/32/45091_2.png) [@correa.wlan](https://discuss.elastic.co/u/correa.wlan)\
**Post date:** [September 1, 2020, 3:19pm UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117/1 "2020-09-01T15:19:31Z")

</div>

Bom dia a todos, estou tentando converter o campo "Localizacao" no Elastic através do kibana mais não estou tendo sucesso, alguém pode me dar uma força pra eu entender onde estou errando.

Segue parametros de envio no Logstash  
input {  
rabbitmq {  
(\*\*\*\*dados de envio rabbitmq)  
}  
}

filter {  
csv{  
separator =\> " "  
columns =\> ["Data", "Distancia", "Local", "Sensor", "Latitude", "Longitude"]  
convert =\> {  
"Distancia" =\> "float"  
"Latitude" =\> "float"  
"Longitude" =\> "float" }  
}

mutate {  
remove\_field =\> ["message", "@version"]  
add\_field =\> ["Localizacao", "%{Latitude},%{Longitude}"]  
}  
}

output {  
elasticsearch {  
hosts =\> "[http://localhost:9200](http://localhost:9200)"  
index =\> "sensores"  
}  
}

Com esse envio no Kibana está obtendo o campo como string e não como Float.... Tentei inserir um convert float também não tive resultado... Segue abaixo minha tentativa de conversão no Kibana

PUT /\_index\_template/sensores/  
{  
"template": "sensores",  
"mappings": {  
"properties": {  
"Localizacao": {  
"type": "geo\_point"  
},  
"entry": {  
"type": "keyword"  
},  
"exit\_only": {  
"type": "keyword"  
}  
}  
}  
}

Executando esse PUT na área de DEV TOOLS está ocorrendo o seguinte erro:

{  
"error" : {  
"root\_cause" : [  
{  
"type" : "x\_content\_parse\_exception",  
"reason" : "[2:15] [index\_template] template doesn't support values of type: VALUE\_STRING" }],  
"type" : "x\_content\_parse\_exception", "reason" : "[2:15] [index\_template] template doesn't support values of type: VALUE\_STRING" },  
"status" : 400  
}

Será que alguém consegue me ajudar obrigado.

---

<div class="post-metadata">

**Author:** ![thiago](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/thiago/32/32096_2.png) [@thiago](https://discuss.elastic.co/u/thiago)\
**Post date:** [September 1, 2020, 3:23pm UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117/2 "2020-09-01T15:23:21Z")

</div>

Olá Leonardo,

Como conversamos no Facebook, você precisa criar o index `/sensores` anteriormente definindo o campo `Localicazacao` como `geo_point` pois este tipo não é detectado automaticamente. Neste caso, você precisa deletar o index, cria-lo novamente com a definição correta e reindexar os dados. Você conseguiu fazer isso?

Abs!

---

<div class="post-metadata">

**Author:** ![correa.wlan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/correa.wlan/32/45091_2.png) [@correa.wlan](https://discuss.elastic.co/u/correa.wlan)\
**Post date:** [September 1, 2020, 3:33pm UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117/3 "2020-09-01T15:33:06Z")

</div>

Então, quase.... o que eu fiz foi o seguinte... criei um novo índice como você me informou, com o nome de "geolocal" e os parâmetros corretos para criar o campo como "geo\_point" na na minha variável "Localizacao" então parei o LOGSTASH criei um novo arquivo de configuração apontando para este índice e aparentemente deu certo. O campo já está como geo\_point.....Maravilha menos um problema.

Agora como eu importo o que está no índice "sensores" para este novo índice que eu criei?

---

<div class="post-metadata">

**Author:** ![thiago](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/thiago/32/32096_2.png) [@thiago](https://discuss.elastic.co/u/thiago)\
**Post date:** [September 1, 2020, 3:36pm UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117/4 "2020-09-01T15:36:38Z")

</div>

Então existe um index aberto, com os dados atuais, chamado `geolocal` e um em snapshot chamado `sensores`?

---

<div class="post-metadata">

**Author:** ![correa.wlan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/correa.wlan/32/45091_2.png) [@correa.wlan](https://discuss.elastic.co/u/correa.wlan)\
**Post date:** [September 1, 2020, 3:38pm UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117/5 "2020-09-01T15:38:37Z")

</div>

Correto, como informei lá pelo Face fiz um backup antes de iniciarmos, se quiser encerro esse tópico como solucionado e abro outro sobre o backup, para ficar organizado, já que o problema principal que era a criação do campo foi resolvido.

---

<div class="post-metadata">

**Author:** ![thiago](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/thiago/32/32096_2.png) [@thiago](https://discuss.elastic.co/u/thiago)\
**Post date:** [September 1, 2020, 4:01pm UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117/6 "2020-09-01T16:01:24Z")

</div>

> [@correa.wlan](#):
>
> se quiser encerro esse tópico como solucionado e abro outro sobre o backup

Não precisa, podemos continuar por aqui. Só queria mesmo confirmar a situação 😉.

Bem, então estou assumindo que a estrutura dos documentos indexados em `sensores` é exatamente igual a estrutura dos documentos indexados em `geolocal`. Apenas mesmo que o esquema do index `sensores` é diferente (e errado) comparado ao `geolocal`. Sendo assim bastar apenas reindexar de um index para o outro, o que pode ser feito com a [Reindex API](https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html), por exemplo (assumindo que você fez o restore do snapshot com o index `sensores`):

```auto
POST _reindex?wait_for_completion=false
{
  "source": {
    "index": "sensores"
  },
  "dest": {
    "index": "geolocal"
  }
}

```

Essa chamada vai retornar na mesma hora e uma task de reindexação vai ser criada em background. O tempo de reindexação vai depender da quantidade de dados e hardware disponível. O resultado da chamada vai retornar um campo `task` que você pode usar para verificar o progresso com `GET .tasks/_doc/${task}`

Abs!

---

<div class="post-metadata">

**Author:** ![correa.wlan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/correa.wlan/32/45091_2.png) [@correa.wlan](https://discuss.elastic.co/u/correa.wlan)\
**Post date:** [September 1, 2020, 4:40pm UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117/7 "2020-09-01T16:40:40Z")

</div>

Por algum motivo ele não reindexou 10 documentos conforme imagem abaixo:

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/f/4/f4f462d372e08f6097b479e5d4a367d8d8a9d46a.png)

Sabe dizer se há algum motivo pra isso?

---

<div class="post-metadata">

**Author:** ![thiago](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/thiago/32/32096_2.png) [@thiago](https://discuss.elastic.co/u/thiago)\
**Post date:** [September 1, 2020, 4:47pm UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117/8 "2020-09-01T16:47:28Z")

</div>

Qual o resultado de `GET .tasks/_doc/${task}`? (Por favor, lembre-se de formatar corretamente o JSON, se não a leitura é difícil, você pode usar Markdown aqui)

---

<div class="post-metadata">

**Author:** ![correa.wlan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/correa.wlan/32/45091_2.png) [@correa.wlan](https://discuss.elastic.co/u/correa.wlan)\
**Post date:** [September 1, 2020, 4:50pm UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117/9 "2020-09-01T16:50:13Z")

</div>

Não exibiu nada...

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/e/9/e91523092baebfba741552afaa6c9a9e24fff6ea.png)

---

<div class="post-metadata">

**Author:** ![thiago](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/thiago/32/32096_2.png) [@thiago](https://discuss.elastic.co/u/thiago)\
**Post date:** [September 1, 2020, 4:54pm UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117/10 "2020-09-01T16:54:18Z")

</div>

Quando eu me referi a `${task}` esse valor era para ter sido substituído pela string retornada no campo `task` quando a task de reindexação foi criada 😉.

Mas não tem problema, pegue o resultado de `GET .tasks/_search` que também serve.

---

<div class="post-metadata">

**Author:** ![correa.wlan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/correa.wlan/32/45091_2.png) [@correa.wlan](https://discuss.elastic.co/u/correa.wlan)\
**Post date:** [September 1, 2020, 4:59pm UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117/11 "2020-09-01T16:59:12Z")

</div>

Putz.... Entendi.... rsrsr.... agora já foi...  
Aparentemente está tudo certo só lá na contagem de documentos que não está mostrando correto mas pelo visto a reindexação deu OK, segue resultado abaixo:

{  
"took" : 0,  
"timed\_out" : false,  
"\_shards" : {  
"total" : 1,  
"successful" : 1,  
"skipped" : 0,  
"failed" : 0  
},  
"hits" : {  
"total" : {  
"value" : 2,  
"relation" : "eq"  
},  
"max\_score" : 1.0,  
"hits" : [  
{  
"\_index" : ".tasks",  
"\_type" : "task",  
"_id" : "Ted_-QnTThCplWhn9G1FQQ:4458249",  
"\_score" : 1.0,  
"_source" : {  
"completed" : true,  
"task" : {  
"node" : "Ted_-QnTThCplWhn9G1FQQ",  
"id" : 4458249,  
"type" : "transport",  
"action" : "indices:data/write/reindex",  
"status" : {  
"total" : 1086617,  
"updated" : 0,  
"created" : 1086617,  
"deleted" : 0,  
"batches" : 1087,  
"version\_conflicts" : 0,  
"noops" : 0,  
"retries" : {  
"bulk" : 0,  
"search" : 0  
},  
"throttled\_millis" : 0,  
"requests\_per\_second" : -1.0,  
"throttled\_until\_millis" : 0  
},  
"description" : "reindex from [sensores] to [geolocal][\_doc]",  
"start\_time\_in\_millis" : 1598976381867,  
"running\_time\_in\_nanos" : 78858204651,  
"cancellable" : true,  
"headers" : { }  
},  
"response" : {  
"took" : 78660,  
"timed\_out" : false,  
"total" : 1086617,  
"updated" : 0,  
"created" : 1086617,  
"deleted" : 0,  
"batches" : 1087,  
"version\_conflicts" : 0,  
"noops" : 0,  
"retries" : {  
"bulk" : 0,  
"search" : 0  
},  
"throttled" : "0s",  
"throttled\_millis" : 0,  
"requests\_per\_second" : -1.0,  
"throttled\_until" : "0s",  
"throttled\_until\_millis" : 0,  
"failures" :   
}  
}  
},  
{  
"\_index" : ".tasks",  
"\_type" : "task",  
"_id" : "Ted_-QnTThCplWhn9G1FQQ:4480519",  
"\_score" : 1.0,  
"_source" : {  
"completed" : true,  
"task" : {  
"node" : "Ted_-QnTThCplWhn9G1FQQ",  
"id" : 4480519,  
"type" : "transport",  
"action" : "indices:data/write/reindex",  
"status" : {  
"total" : 1086889,  
"updated" : 0,  
"created" : 1086889,  
"deleted" : 0,  
"batches" : 1087,  
"version\_conflicts" : 0,  
"noops" : 0,  
"retries" : {  
"bulk" : 0,  
"search" : 0  
},  
"throttled\_millis" : 0,  
"requests\_per\_second" : -1.0,  
"throttled\_until\_millis" : 0  
},  
"description" : "reindex from [sensores] to [geolocal][\_doc]",  
"start\_time\_in\_millis" : 1598977278217,  
"running\_time\_in\_nanos" : 89437829115,  
"cancellable" : true,  
"headers" : { }  
},  
"response" : {  
"took" : 89437,  
"timed\_out" : false,  
"total" : 1086889,  
"updated" : 0,  
"created" : 1086889,  
"deleted" : 0,  
"batches" : 1087,  
"version\_conflicts" : 0,  
"noops" : 0,  
"retries" : {  
"bulk" : 0,  
"search" : 0  
},  
"throttled" : "0s",  
"throttled\_millis" : 0,  
"requests\_per\_second" : -1.0,  
"throttled\_until" : "0s",  
"throttled\_until\_millis" : 0,  
"failures" :   
}  
}  
}  
]  
}  
}

---

<div class="post-metadata">

**Author:** ![correa.wlan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/correa.wlan/32/45091_2.png) [@correa.wlan](https://discuss.elastic.co/u/correa.wlan)\
**Post date:** [September 1, 2020, 5:10pm UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117/12 "2020-09-01T17:10:49Z")

</div>

Obrigado pela força e Feliz Aniversário... Até mais... muito obrigado mesmo, valeu.

---

<div class="post-metadata">

**Author:** ![thiago](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/thiago/32/32096_2.png) [@thiago](https://discuss.elastic.co/u/thiago)\
**Post date:** [September 1, 2020, 5:55pm UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117/13 "2020-09-01T17:55:51Z")

</div>

Pelo resultado da consulta me parece que a reindexação foi ok mesmo! Talvez você tenha visto o contador em um momento que a task ainda não tinha terminado?

> [@correa.wlan](#):
>
> Obrigado pela força e Feliz Aniversário...

Por nada e obrigado!

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [November 4, 2022, 8:12am UTC](https://discuss.elastic.co/t/campo-geolocalizacao-no-elastic-como-string/247117/14 "2022-11-04T08:12:09Z")

</div>


