含めたメソッドの全体像は以下のようになります。読むと詳しく記載されています。実際に先ほど登録したデータで試してみます。:distance=>"407190m"}]このように、中心点の河原町駅からの距離順に並んでいることが分かります。中心点からの距離で絞込むでは次に、中心点から一定の範囲内にあるおでかけスポットのみを取り出してみます。今回は、河原町駅から10km(10000m)以内にあるスポットのみを取り出します。フィルターを使います。使った場合、以下のように書くことで、このフィルターを使うことができます。これを実行すると、以下のような結果が得られます。:distance=>"1008m"}]このように、全て河原町駅から10km以内に位置するスポットのみを抽出することができました。柔軟な位置情報検索では最後に、少しだけ応用的な使い方として、スポット名および住所での全文検索と位置情報を組み合わせた検索を行います。使ってこれを実現しようと思います。実際にサービスを運営していると、検索結果の並び順をどうするか決めるためには様々な要因を考慮する必要があることに気が付きます。考慮する必要があるでしょう。そのため、距離順など一つの基準で並び替えてしまった場合、人気がないスポットや検索クエリとの関連が低いスポットが上位に並んでしまうということになりかねません。セクションに複数の条件(function)を記載でき、それぞれの条件でのスコアを合算した値を使ってソートを行います。考慮して並び替えたものを返すメソッドを作りました。endend観光地に出向いて周辺のおでかけスポットを検索する際、徒歩で行けるくらい近いスポットについては、数メートルの違いはそれほど重要ではなかったりします。これがもう少し遠くなり、少し歩いてでも行きたいかどうか悩むような距離にあるスポットについては、距離の違いが重要な判断材料になってきます。これがさらに遠くなって、歩くにはちょっと厳しいなという距離になってくると、今度はまた距離の重要性が低くなります。以上離れた場所に位置するスポットについては、再び距離差が重要ではなくなるため、距離差をソート結果に反映しないようにするというような設定になっています。実際のサービスでは、この閾値をどこに設定するか、他の条件とどうバランスをとるかを調整することで、検索結果の品質を高めていくことになります。このメソッドを実行してます。:distance=>"4821m"}]このように、スポット名・住所の両方に「京都」が含まれていて、より検索クエリとの関連度が高い「京都御所」が一番上に位置しています。一方で、それ以外のスポットについては、上で示した設定に沿うような並び順になっていることが分かります。実際のケースでは、PV数のような人気を表す指標や価格帯など様々な要素を含めることで、より使いやすい検索結果を提供することができそうです。使うことで簡単に全文検索と位置情報を連携した検索機能を作ることができました。使った検索は、条件を色々組み替えることでどんどんと洗練させることができそうです。メソッド内のクエリの設定を書き換えるだけで結果が即座に変わるため、プロトタイピングもしやすく簡単にランキングの調整ができるので便利です。今回の記事が、位置情報を使った検索がしたいという方にとって、少しでもお役に立てていれば幸いです。エンジニアを募集しています。日本全国には、まだまだたくさんの知る人ぞ知るおでかけスポットや、休日の過ごし方があります。使った地理属性判別システムの構築こんにちは、ホリデー株式会社の内藤です。インデックスを無停止で再構築するこんにちは。ホリデー株式会社の内藤です。使ったセキュリティログ検索基盤の構築サービス特性にあった検索システムの設計戦略クックパッド採用説明会「クックパッドはサービスの作り手を採用したいんです。/*}*/スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。