Chapter 36. Geo-Points
A geo-point is a single latitude/longitude point on the Earth’s surface. Geo-points can be used to calculate distance from a point, to determine whether a point falls within a bounding box, or in aggregations.
Geo-points cannot be automatically detected with
dynamic mapping. Instead, geo_point
fields should be
mapped explicitly:
PUT
/attractions
{
"mappings"
:
{
"restaurant"
:
{
"properties"
:
{
"name"
:
{
"type"
:
"string"
},
"location"
:
{
"type"
:
"geo_point"
}
}
}
}
}
Lat/Lon Formats
With the location
field defined as a geo_point
, we can proceed to index
documents containing latitude/longitude pairs, which can be formatted as
strings, arrays, or objects:
PUT
/attractions/restaurant/
1
{
"name"
:
"Chipotle Mexican Grill"
,
"location"
:
"40.715, -74.011"
}
PUT
/attractions/restaurant/
2
{
"name"
:
"Pala Pizza"
,
"location"
:
{
"lat"
:
40.722
,
"lon"
:
-73.989
}
}
PUT
/attractions/restaurant/
3
{
"name"
:
"Mini Munchies Pizza"
,
"location"
:
[
-73.983
,
40.719
]
}
Get Elasticsearch: The Definitive Guide now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.