[[lat-lon]] === `lat_lon` <> are usually performed by plugging the value of each <> field into a formula to determine whether it falls into the required area or not. Unlike most queries, the inverted index is not involved. Setting `lat_lon` to `true` causes the latitude and longitude values to be indexed as numeric fields (called `.lat` and `.lon`). These fields can be used by the <> and <> queries instead of performing in-memory calculations. [source,js] -------------------------------------------------- PUT my_index { "mappings": { "my_type": { "properties": { "location": { "type": "geo_point", "lat_lon": true <1> } } } } } PUT my_index/my_type/1 { "location": { "lat": 41.12, "lon": -71.34 } } GET my_index/_search { "query": { "geo_distance": { "location": { "lat": 41, "lon": -71 }, "distance": "50km", "optimize_bbox": "indexed" <2> } } } -------------------------------------------------- // CONSOLE <1> Setting `lat_lon` to true indexes the geo-point in the `location.lat` and `location.lon` fields. <2> The `indexed` option tells the geo-distance query to use the inverted index instead of the in-memory calculation. Whether the in-memory or indexed operation performs better depends both on your dataset and on the types of queries that you are running. NOTE: The `lat_lon` option only makes sense for single-value `geo_point` fields. It will not work with arrays of geo-points.