我的映射包含一个嵌套字段,如下所示:
"Locations": {
"type": "nested",
"properties": {
"Name": {
"type": "string"
},
"GeoPoint": {
"type": "geo_point"
}
}
}
所以基本上我想做的是在文档的每个位置存储一些其他属性。
不幸的是,看起来这不适用于geo distance filter:
GET /myIndex/myType/_search
{
"filter": {
"geo_distance": {
"distance": "100 mi",
"Locations.GeoPoint": {
lat: 40.70,
lon: -74.00
}
}
}
}
不会返回任何结果,而如果GeoPoint直接位于文档本身而不是嵌套字段上,则过滤器可以正常工作:
GET /myIndex/myType/_search
{
"filter": {
"geo_distance": {
"distance": "100 mi",
"GeoPoint": {
lat: 40.70,
lon: -74.00
}
}
}
}
有什么方法可以使地理距离过滤器与嵌套字段上的geo_point一起使用?
最佳答案
nested filter完成以下任务:
GET /myIndex/myType/_search
{
"filter" : {
"nested" : {
"path" : "Locations",
"filter" : {
"geo_distance": {
"distance": "100 mi",
"GeoPoint": {
"lat": 40.70,
"lon": -74.00
}
}
}
}
}
}
关于elasticsearch - 在嵌套字段上应用地理距离过滤器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24743101/