使用geo_distance过滤器时,ElasticSearch会返回太远的项目

时间:2011-11-10 01:42:41

标签: geolocation geospatial geo elasticsearch

当我使用nested filter -> and -> geo_distance搜索我的ElasticSearch文档时,我检索的文档距离太远(我不想返回。)您可以看到query以及下面的截图结果(左侧的原始结果和右侧的手动过滤结果)。

enter image description here

这是查询的另一个副本:

{
   "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
}       

1 个答案:

答案 0 :(得分:2)

添加选项“distance_type”并将其设置为“plane”解决了此问题。请在此处查看“distance_type”:

http://www.elasticsearch.org/guide/reference/query-dsl/geo-distance-filter.html