OpenSearchの地図検索では経度パラメータにlonを使う
OpenSearch
OpenSearch の地理座標検索では、経度を表すパラメータ名は lng ではなく lon を使う。
たとえば geo_point に対して距離検索やソートを行う場合、座標指定は次のように lat / lon の組み合わせにする。
lng は Google Maps などのフロントエンド API ではよく使われるが、OpenSearch の Query DSL では期待されない。フロントエンドや外部 API から lng という名前で受け取った場合でも、OpenSearch に渡す直前で lon に変換する。
確認ポイント:
- OpenSearch に渡す
geo_pointはlat/lonになっているか - DB やフロントエンドの命名が
lngの場合、検索クエリ生成時にlonへ変換しているか - 距離検索、地図範囲検索、距離ソートのすべてで同じ変換ルールを使っているか
地図系の不具合で検索結果が出ない、距離ソートが効かない、座標条件が無視されるように見える場合は、まず lng を OpenSearch に渡していないか確認する。