2017-06-02 13 views
1

地理距離検索を使用して弾性検索で検索した座標から距離を取得する必要があります。私は、これはReturn distance in elasticsearch results?弾性検索における地理距離検索での戻り距離5.x

から得ているこの

curl -XGET 'http://127.0.0.1:9200/branch-master/master/_search?pretty=1' -d ' 
{ 
    "script_fields" : { 
     "distance" : { 
     "params" : { 
      "lat" : 18.00, 
      "lon" : 72.00 
     }, 
     "script" : "doc[\u0027location\u0027].distanceInKm(lat,lon)" 
     } 
    } 
} 
' 

を試みたが、これは私にエラー「でstart_object [のparams]のために、未知の鍵」を提供します。私はこれが何であるか理解できません。上記の解決策はかなり古いバージョンのESのようです。私はES 5.1を使用しています。マニュアルでは、私は地理距離のクエリのためのrelavantソリューションを見つけることができませんでした。誰かが私を助けてくれますか?

答えて

1

メソッドdistanceInKmは廃止され、現在は削除されています(5.x)。代わりにarcDistanceなどを使用してください。詳細はこちら:https://www.elastic.co/guide/en/elasticsearch/reference/current/breaking_50_scripting.html#_geopoint_scripts

構文は少し変更されています。これは私のためにElasticsearch 5.6で動作します。

{ 
    "script_fields": { 
     "geo_distance": { 
      "script": { 
       "params": { 
        "lat": 18.00, 
        "lon": 72.00 
       }, 
       "inline": "doc['location'].arcDistance(params.lat, params.lon)" 
      } 
     } 
    } 
} 
関連する問題