2015-06-05 88 views
1

問題:Elasticsearch地理空間給我誇張的距離測量

我使用Elasticsearch索引我的網站上的一些物品和我不斷收到可笑誇張的距離。即使我使用相同的座標進行搜索,我仍然可以獲得3000公里的距離。

發表:

[{ 
     "expiryDate": "2014-04-11 02:32:16", 
     "geo": { 
      "lon": 45.297, 
      "lat": 75.0755 
     }, 
     "id": "5571afb7ae2c287f4d54b713", 
     "images": [], 
     "imagesLinks": [], 

    }] 

映射:

{ 
    "listingsell" : { 
     "properties" : { 
      "geo" : { 
       "type" : "geo_point", 
       "fielddata" : { 
        "format" : "compressed", 
        "precision" : "1m" 
       } 
      } 
     } 
    } 
} 

查詢:

 { 

    "query": { 
     "filtered" : { 
      "query" : { 
       "match_all" : {} 
      }, 
      "filter" : { 
       "geo_distance" : { 
        "distance" : "90000mi", 
        "geo" : { 
         "lat" : 45.1339, 
         "lon" : 75.019 
        } 
       } 
      } 
     } 
    }, 
    "sort" : [ 
     { 
      "_geo_distance" : { 
       "geo" : { 
        "lat" : 45.1339, 
        "lon" : 75.019 
       }, 
       "order" : "asc", 
       "unit" : "mi" 
      } 
     } 
    ], 
} 

結果:

{ 
"sort":[2247.4929] 
    } 

回答

0

你有geo_point以錯誤的方式索引:

 "geo": { 
      "lon": 45.297, 
      "lat": 75.0755 
     } 

或排序以錯誤的方式完成:

   "geo" : { 
        "lat" : 45.1339, 
        "lon" : 75.019 
       } 

含義你lon混合起來lat