React IntaltSearchの導入

最終更新: 2022年02月09日

2つの実装パターン

Algolia で検索を実行する際、React InstantSearch と呼ばれるウィジェットを使うパターンと JavaScript API client を使うパターンがあります。

パターン難易度カスタム性
React InstantSearch
JavaScript API client

このドキュメントでは React InstantSearch (ウィジェット)をベースに解説します。どちらの実装方法でも一般的な検索UIの実装は問題なく可能です。

ウィジェットをカスタマイズして使う

Algoliaにはたとえば以下のウィジェットが用意されています。

ウィジェット名役割
searchBox検索フォーム
sortBy並べ替え
refinementList絞り込み条件(タグやカテゴリ)
hits検索結果の一覧
paginationページ送り
hitsPerPage1ページあたりの表示件数設定

他のウィジェットはドキュメントで確認できます。

ウィジェットは機能と見た目を最初から備えていますが、デフォルトの見た目をそのまま使えるシーンは少ないでしょう。実際にはプロダクトのブランドに合わせて見た目を馴染ませる必要があります。それぞれのウィジェットは機能を抽出して挙動や見た目をカスタマイズすることとができます。これをカスタムウィジェットと呼びます。

基本的にカスタムウィジェットにして Tailwind CSS などでデザインすることになります。

実装

基本的な実装は以下です。searchClient初期化 で用意したものを使います。

ターミナル
npm install react-instantsearch-dom
import { InstantSearch } from 'react-instantsearch-dom'; <InstantSearch searchClient={searchClient} indexName="インデックス名" > // この中にウィジェットを配置 </InstantSearch>

React InstantSearch では各ウィジェットは必ず <InstantSearch> タグの中に設置する必要があります。この中に既存のウィジェット、あるいはカスタムウィジェットを設置することで検索結果の表示や条件の変更が可能になります。

ライブデモ