Se um objeto formatado incorretamente for passado para um geoponto durante a indexação de um documento, ele deverá gerar um erro. Em vez disso, todos os campos após o geoponto inválido são simplesmente ignorados:
PUT /test
{
"mappings": {
"foo": {
"properties": {
"loc": {
"type": "geo_point"
}
}
}
}
}
PUT /test/foo/1
{
"loc": { "lat": 0, "lon": 0 },
"tag": "ok"
}
PUT /test/foo/2
{
"loc": {
"loc": {
"lat": 0,
"lon": 0
}
},
"tag": "not_ok"
}
GET /test/_search?search_type=count
{
"facets": {
"tags": {
"terms": {
"field": "tag"
}
}
}
}
Resultado:
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 0,
"hits": []
},
"facets": {
"tags": {
"_type": "terms",
"missing": 1,
"total": 1,
"other": 0,
"terms": [
{
"term": "ok",
"count": 1
}
]
}
}
}
+1 para lançar um erro @chilling, você pode dar uma olhada? Isso deve ser direto
@ s1monw @clintongormley vou consertar
Apenas no caso de alguém pesquisar no Google as exceções correspondentes. Se você tentar indexar um documento contendo campos geo_point incompletos ou inválidos no Elasticsearch 1.1.0 e obter exceções como "MapperParsingException [falhou ao analisar]; aninhado: ElasticsearchParseException [campo [lat] ausente];" ou "MapperParsingException [falha ao analisar]; aninhada: ElasticsearchParseException [geo_point esperado];", a solução é ignorar todo o campo geo_point. Veja esta essência: https://gist.github.com/hkorte/9936192
Comentários muito úteis
Apenas no caso de alguém pesquisar no Google as exceções correspondentes. Se você tentar indexar um documento contendo campos geo_point incompletos ou inválidos no Elasticsearch 1.1.0 e obter exceções como "MapperParsingException [falhou ao analisar]; aninhado: ElasticsearchParseException [campo [lat] ausente];" ou "MapperParsingException [falha ao analisar]; aninhada: ElasticsearchParseException [geo_point esperado];", a solução é ignorar todo o campo geo_point. Veja esta essência: https://gist.github.com/hkorte/9936192