[[query-dsl-geohash-cell-query]] === Geohash Cell Query The `geohash_cell` query provides access to a hierarchy of geohashes. By defining a geohash cell, only <> within this cell will match this filter. To get this filter work all prefixes of a geohash need to be indexed. In example a geohash `u30` needs to be decomposed into three terms: `u30`, `u3` and `u`. This decomposition must be enabled in the mapping of the <> field that's going to be filtered by setting the `geohash_prefix` option: [source,js] -------------------------------------------------- PUT /my_index { "mappings" : { "location": { "properties": { "pin": { "type": "geo_point", "geohash": true, "geohash_prefix": true, "geohash_precision": 10 } } } } } -------------------------------------------------- // CONSOLE // TESTSETUP The geohash cell can defined by all formats of `geo_points`. If such a cell is defined by a latitude and longitude pair the size of the cell needs to be setup. This can be done by the `precision` parameter of the filter. This parameter can be set to an integer value which sets the length of the geohash prefix. Instead of setting a geohash length directly it is also possible to define the precision as distance, in example `"precision": "50m"`. (See <>.) The `neighbor` option of the filter offers the possibility to filter cells next to the given cell. [source,js] -------------------------------------------------- GET /_search { "query": { "bool" : { "must" : { "match_all" : {} }, "filter" : { "geohash_cell": { "pin": { "lat": 13.4080, "lon": 52.5186 }, "precision": 3, "neighbors": true } } } } } -------------------------------------------------- // CONSOLE [float] ==== Ignore Unmapped When set to `true` the `ignore_unmapped` option will ignore an unmapped field and will not match any documents for this query. This can be useful when querying multiple indexes which might have different mappings. When set to `false` (the default value) the query will throw an exception if the field is not mapped.