ElasticSearch возвращает элементы, которые находятся слишком далеко при использовании фильтра geo_distance - PullRequest
1 голос
/ 10 ноября 2011

При поиске документов ElasticSearch с помощью nested filter -> and -> geo_distance я получаю документы, которые находятся слишком далеко (и я не хочу возвращать их). Вы можете увидеть запрос и снимок экрана нижерезультаты (необработанные результаты слева и вручную отфильтрованные результаты справа).

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 Ответ

2 голосов
/ 19 ноября 2011

Добавление опции «distance_type» и установка ее в «plane» устранило эту проблему.См. «Distance_type» здесь:

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

...