当我使用nested filter -> and -> geo_distance
搜索我的ElasticSearch文档时,我会检索距离太远(并且我不想返回)的文档。您可以在结果的下方看到query和屏幕截图(左侧为原始结果,手动过滤了结果)在右边)。
这是查询的另一个副本:
{
"query":{
"match_all":{
}
},
"filter":{
"and":[
{
"term":{
"PropertySubType":"Single Family"
}
},
{
"term":{
"City":"Los Angeles"
}
},
{
"geo_distance":{
"distance":"2.25miles",
"Location":[
34.111583657,
-118.324646099
]
}
},
{
"range":{
"BedroomsTotal":{
"gte":3
}
}
},
{
"range":{
"BuildingSize":{
"gte":3000
}
}
},
{
"range":{
"YearBuilt":{
"lte":2000
}
}
},
{
"terms":{
"ListingStatus":[
"Active",
"Pending",
"Closed"
]
}
}
]
},
"size":100
}
最佳答案
添加选项“distance_type”并将其设置为“plane”可解决此问题。请参阅此处的“distance_type”:
http://www.elasticsearch.org/guide/reference/query-dsl/geo-distance-filter.html
关于geolocation - 当使用geo_distance过滤器时,ElasticSearch返回的项目太远,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8074049/