はじめに
FlutterでAlgoliaを使用したのですが、英語の記事が多く苦労したので、まとめておきます。
本記事では、
パッケージのインストール ~ 検索を実行し、その結果を取得
を記載します。
Algoliaの実装方法
使用するパッケージ
"algolia"というパッケージを使用します。
pubspec.yaml
pubspec.yaml
dependencies:
algolia: ^1.0.4
コード
アプリケーションIDおよびAPIキーの設定
Algolia.init(
applicationId: 'YOUR_APPLICATION_ID',
apiKey: 'YOUR_API_KEY',
);
init()はstaticのため、以降で生成するインスタンス全てにおいて、
設定したアプリケーションIDおよびAPIキーが適用されます。
クエリの生成
AlgoliaQuery query = algolia.instance.index('contacts').query('john');
index()の引数には、指定したいindex名を、
query()の引数には、検索したいキーワードを、設定します。
クエリに検索条件を設定
// 最大取得件数を設定
query = query.setLength(100);
一例として、最大取得件数を設定しました。
他の検索条件を設定する場合でも、同じようにすればOKです。
<注意>
以下の書き方では、設定した事になりません。
// 最大取得件数を設定
query.setLength(100);
setLength()の戻り値(AlgoliaQuery)を、queryで受け取りましょう。
検索を実行
AlgoliaQuerySnapshot snap = await query.getObjects();
検索結果を見る
// 検索にヒットしたオブジェクトの数
snap.nbHits; // int
// 検索にヒットしたオブジェクトのリスト
snap.hits; // List<AlgoliaObjectSnapshot>
// 1件ずつ内容を見る
for (final hit in snap.hits) {
// オブジェクトの内容は、Mapに格納されている
final object = hit.data; // Map<String, dynamic>
}
コードまとめ
今までのコードを、一つにまとめたコードです。
// アプリケーションIDとAPIキーの設定
Algolia.init(
applicationId: 'YOUR_APPLICATION_ID',
apiKey: 'YOUR_API_KEY',
);
// クエリの生成
AlgoliaQuery query = algolia.instance.index('contacts').query('john');
// 検索条件を設定
query = query.setLength(100);
// 検索を実行
AlgoliaQuerySnapshot snap = await query.getObjects();
// 検索結果を見る
for (final hit in snap.hits) {
final object = hit.data; // Map<String, dynamic>
}
おわりに
分かってしまえば簡単なのですが、分かるまでが大変でした。。
今後、Flutterでalgoliaを使う方がいれば、参考にしていただければ幸いです。
では。