JavaScriptを有効にしてください

【algolia】algoliaで位置情報を使った検索をしたい

個人でfirestoreを使ったアプリを作っているのですが、

FirestoreやDynamoDBでユーザに全文検索を提供をしたいとなると別途全文検索エンジンが必要になりますよね。

https://firebase.google.cn/docs/firestore/solutions/search?hl=ja

Firestoreのドキュメントでおすすめされている”algolia”というサービスはある程度まで無料で使うことができます。

僕みたいなけちんぼには嬉しいです。

https://www.algolia.com/pricing/

algoliaでは全文検索以外にも緯度経度を使った検索機能も提供されています。

https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/

ちょうど位置情報を使ったアプリを作ってるのでありがたいです。

ルールとしてはインデックス登録の際に

# 1点を登録
"_geoloc": {
"lat": 緯度,
"lng": 経度
}

もしくは

# 複数登録
"_geoloc": [
{ "lat": 緯度, "lng": 経度 },
...
]

という形で登録する必要があります。

すでに位置情報のフィールドを作っている場合はインデックス登録の際にこの形に合わせないといけません。

この登録された位置情報でできることのサンプルの一例こちら。

https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/how-to/filter-results-around-a-location/

例えば「現在地の緯度経度から半径nメートル以内に絞って検索」なんてこともできます。