Find documents by geodistance filter on geoshape field of type Point in ElasticSearch
我的文档在包含位置的弹性搜索中。它们在文档中包含一个名为
在城市类型的文档中,(由字段
在国家类型文档中,(由字段
我的问题是,我可以像这样运行 geo_distance 过滤器查询:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | { "query": { "filtered": { "query": { "term": { "location_type": { "value":"city" } } }, "filter": { "geo_distance": { "distance": 100, "distance_unit":"km", "location.coordinates": { "lat": 40.73, "lon": -74.1 } } } } } } |
这给了我一个错误,说:nested: QueryParsingException failed to find geo_point field [location.coordinates]
我怎样才能使这个查询工作?
我使用了这种方法。写在这里供其他人参考。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | { "query": { "geo_shape": { "location": { "shape": { "type":"circle", "radius":"100km", "coordinates": [ 86, 27 ] } } } } } |