2016-11-21 7 views
0

私はESにインデックス付けしたシェイプファイルから取得したgeo_shapesのコレクションを持っています。私はまた、geo_pointsを持つドキュメントの大きなインデックスを持っています。 geo_shape内にポイントを持つすべてのドキュメントを返すクエリを実行しようとしていますが、ゼロ結果が返され続けます。インデックス付きジオシェープ内で交差するジオポイントを持つすべてのドキュメントのElasticSearchを照会します。

特定の緯度/経度のクエリを実行して、それが正常に戻ってきているので、マッピングが正しいと確信しています。また、geo_pointsを使用してドキュメントの境界ボックス検索を行うこともできます一致する文書のリストを正常に取得します。ここで

は私geo_shapesのマッピングです:

{ 
"geometry":{ 
"properties": { 
"type": "geo_shape", 
"tree":"quadtree" 
} 
} 
} 

、これはgeo_pointsとの文書のためのマッピングです:

{ 
"docs":{ 
"location":{ 
"properties":{ 
"coordinates":{ 
"type":"geo_point", 
"geohash":true 
} 
} 
} 
} 
} 

私が実行しようとしているクエリは次のとおりです。

{"query": 
"geo_shape": { 
"location": { 
"indexed_shape": { 
"id": "shape_id", 
"type": "locations", 
"index": "index_name", 
"path": "geometry" 
} 
} 
} 

私は、geo_pointsを持つドキュメントを含む特定のインデックス/タイプに対してクエリを実行しています。インデックス全体に対して実行すると、geo_shapeドキュメントだけが返されます。

答えて

0

この仕事に、あなたの2番目のインデックス内の場所は次のように、geo_shape(タイプ=ポイント)だけでなく(ないgeo_point)としてマッピングする必要があるためには:次に、あなたのgeo_shapeクエリ作業

{ 
    "locations": { 
    "location": { 
     "properties": { 
     "coordinates": { 
      "type": "geo_shape", 
      "tree": "quadtree", 
      "precision": "1m" 
     } 
     } 
    } 
    } 
} 

pre-indexed shapesは正常に動作しません。

+0

これは動作しませんでした。地理的な形状を「位置」レベルと「座標」レベルにマッピングしようとしました。また、それを行うと、geo_pointのバウンディングボックスクエリを実行する機能がなくなります。 – Jason

+0

OK。私はそれを働かせました。私は私の元のポストで固定した質問に混乱していた。 – Jason

+0

これはうまくいきました。 – Val

関連する問題