2017-02-22 10 views
0

私はelasticsearch 5.2を使用していますが、geo_pointフィールドに[geohash:true] M [geoshash]が償却されたかの文書を作成中geo_pointフィールドタイプからジオハッシュを生成し、保存するための別の方法がある場合は?次のエラーが[location]のマッピング定義にサポートされていないパラメータがあります:[geohash:true]:Elasticsearch 5.X

{ 
    "error": { 
    "root_cause": [ 
     { 
     "type": "mapper_parsing_exception", 
     "reason": "Mapping definition for [location] has unsupported parameters: [geohash : true]" 
     } 
    ], 
    "type": "mapper_parsing_exception", 
    "reason": "Failed to parse mapping [jdloc]: Mapping definition for [location] has unsupported parameters: [geohash : true]", 
    "caused_by": { 
     "type": "mapper_parsing_exception", 
     "reason": "Mapping definition for [location] has unsupported parameters: [geohash : true]" 
    } 
    }, 
    "status": 400 
} 

誰も私を伝えることができ取得

答えて

1

documentation

geo_pointフィールドに

ような数値をジオ・ポイント・フィールドをフィールド引用 新しいBKDのツリー構造を使用しています。この構造は基本的に多次元空間データに対して と設計されているため、次のフィールドパラメータは不要またはサポートされなくなりました: geohash、geohash_prefix、 geohash_precision、lat_lon。 Geohashesは引き続きAPI の視点からサポートされており、拡張子.geohashフィールド を使用してアクセスできますが、これらはもはやジオポイントデータのインデックスには使用されません。

これはサポートされなくなったようです。 hereを参照してください。この例では、次のマッピングを使用してgeohashを使用しています。

{ 
    "mappings": { 
    "my_type": { 
     "properties": { 
     "location": { 
      "type": "geo_point" 
     } 
     } 
    } 
    } 
} 

PUT my_index/my_type/3 
{ 
    "text": "Geo-point as a geohash", 
    "location": "drm3btev3e86" 
} 

UPDATE:

私はドキュメントから理解し、何がgeohashがマッピングでサポートされていませんが、あなたはまだそれにアクセスできるということです。したがって、自動的に計算される必要があります。

したがって、次のようにインデックスを作成すると、geohashにもアクセスできるはずです。

PUT my_index/my_type/1 
{ 
    "text": "Geo-point as an object", 
    "location": { 
    "lat": 41.12, 
    "lon": -71.34 
    } 
} 
+0

これは、geohashを別のソースを使用して明示的に格納するようなものです。しかし、私は、自動生成されたgeohashをgeo_pointsに格納された緯度経度から生成する必要があります。 –

+0

@AbhishekAdhikary更新された回答をご覧ください –

関連する問題