Hello @all,
J'ai posté le même sujet en anglais, je tente aussi ma change sur le canal FR de mes compatriotes !
J'ai une blinde de données indexées sous le format geo_point dans elasticsearch.
Tout fonctionne très bien si je fais une requête de géolocalisation genre :
{
    "query": {
        "filtered": {
            "query": {
                "match_all": {}
            },
            "filter": {
                "geo_distance": {
                    "distance": "5km",
                    "iplocation.location": {
                        "lat": 48.8761638,
                        "lon": 2.3345515
                    }
                }
            }
        }
    }
}
Par contre, j'ai besoin, pour tracer des markers sur une carte, d'exporter uniquement les coordonnées géographiques (Exporter l'integralité des documents serait trop lourd).
J'ai tenté deux méthodes; La méthode fields ne me sort jamais le champs en question :
{
    "query": {
        "bool": {
            "must": {
                "range": {
                    "urls.date": {
                        "gte": "now-1h"
                    }
                }
            }
        }
    },
    "fields": [
        "iplocation.location"
    ],
    "sort": [
        {
            "date": {
                "order": "desc"
            }
        }
    ],
    "size": 100
}
Ce qui me donne des documents du type :
{
	"_index" : "monindex",
	"_type" : "montype",
	"_id" : "AUt9PkvGDgH0n4KFZQ2Q",
	"_score" : null,
	"sort" : [
		1429286509566
	]
},
Donc, pas de champs location.
J'ai alors tenté le script_fields, ce qui marche un peu mieux mais retourne des données partielles, car plusieurs shards retournent une erreur.
La query :
{
    "query": {
        "bool": {
            "must": {
                "range": {
                    "urls.date": {
                        "gte": "now-1h"
                    }
                }
            }
        }
    },
    "script_fields": {
        "geo": {
            "script": "doc['iplocation.location'].value"
        }
    },
    "sort": [
        {
            "date": {
                "order": "desc"
            }
        }
    ],
    "size": 10000
}
L'erreur sur 3 shards (sur 5) :
RemoteTransportException[[MonServeur][inet[/blah:9300]][indices:data/read/search[phase/fetch/id]]]; nested: IOException[Can't write type [class org.elasticsearch.common.geo.GeoPoint]];
Du coup, je n'arrive jamais a récupérer la totalité de mes données.
Si quelqu'un a une idée, je suis preneur !
Merci !
Thierry