要件
サイトは WordPress で作成。
サイト内検索に Algolia を利用。
本記事では WordPress と Algolia の連携し利用できるようにするまでの手順を記載。
Algoliaのアカウント/APIキーを取得
また、開発用/本番用とでAlgoliaのアプリケーションは分離しておく。
アカウント取得時は無料でよいが、無料枠の場合は検索回数の上限やチームユーザーの制限があるため、本番環境用で利用する場合は素直に支払い情報を登録しておきましょう。
APIキーは
- Application ID
- Search-Only API Key
- Write API Key(旧名称 Admin API key)
を控えておく。
WordPressでプラグインのセットアップ
WP Search with Algoliaをインストール
1. APIキーの設定
Algolia search→SettingsでAPIキーを入力/保存。
Index name prefix はデフォルトのままでOK。
2. 検索フォームの選択
Algolia search→Search Page。
検索ページをどのように実装するかによって異なるのでサイトに合わせて選択する。
- Do not use Algolia: サイト内検索をAlgoliaに置き換えない。自前で実装する場合はこちら。
- Use Algolia in the backend : サイト内検索をWordPressからAlogliaに置き換えるが、Instantsearch.jsでは無く PHP を利用した検索になる
- Use Algolia with Instantsearch.js : サイト内検索をWordPressからAlogliaに置き換えInstantsearch.jsを利用する
3. インデックスに送信する投稿タイプなどの設定
Algolia search→Autocomplete。
検索窓でオートコンプリート機能を使う場合は、 「Enable autocomplete」のチェックを入れる。
ConfigurationでAlgoliaのインデックスに登録する(検索対象とする)、投稿タイプ/ユーザー情報/タクソノミーにチェックを入れる。
保存したらインデックスの送信を促すボタンが出るので送信しておく。
Algoliaのインデックスの設定
AlgoliaのダッシュボードでWordPress送信されたインデックスの設定を行う。
各インデックスのConfigurationタブで設定する。
インデックスが複数ある場合、1つのインデックスの設定を他のインデックスにも反映させることができるので、同じ設定であれば複数回繰り返さなくても良い。
1. インデックスが作成されているかの確認
prefixがデフォルトのままの場合
- wp_searchable_posts→全ての投稿タイプの投稿が含まれるインデックス
- wp_posts_post→投稿のみのインデックス
など、インデックスが作成されているか確認
2. Languages
形態素解析を使用できる様 日本語のサイトの場合は必ず設定しておく。
設定名 | 内容 |
---|---|
Index Languages | Japanese |
Query Languages | Japanese |
3. Searchable attributes
検索対象となる要素名を指定する。
WP Search with Algolia プラグイン利用時のデフォルトは下記の通り。
Algoliaの要素名 | WordPress | 検索語のマッチした位置 |
---|---|---|
post_title | 投稿のタイトル | unordered |
taxonomies | 投稿に付与されているタクソノミー(カテゴリー、タグ、カスタムタクソノミー) | unordered |
content | 投稿の本文 | unordered |
検索語のマッチした位置はマッチした位置を考慮するかどうか。
ordered にするとより早い位置(前のほう)に出てくるレコードが上位になる。
要素の並び順を変更すると検索時のランキングに影響する。
4. Ranking and sorting
検索結果のランキング/重み付けの設定。
WP Search with Algolia プラグイン利用時のデフォルトは下記の通り。
種別 | Algoliaの要素名 | 順序 |
---|---|---|
TEXTUAL | Ranking Criteria | |
CUSTOM RANKING | is_sticky | Descending |
CUSTOM RANKING | post_date | Descending |
CUSTOM RANKING | record_index | Ascending |
- Algolia のデフォルトランキングストラテジー に基づくランク付け
- 同じランキングの場合「先頭に固定表示」の投稿を優先
- 同じランキングの場合「公開日時」の新しい投稿を優先
- 同じランキングの場合「レコードインデックス」が小さい投稿を優先
Webサイト側の検索ページ
どういう検索をさせたいかによるのでこの記事で具体的な手法は記載しない。
- WP Search with Algolia プラグインの場合、WordPressデフォルトの検索フォームをAlogliaに置き換えてくれる
- WP Search with Algolia プラグインのテンプレートを利用する
- Search with Algolia Instantsearch Blocks を使う
- Instantsearch.js APIを利用して自前で頑張る
あわせて読んで欲しい記事