WordPress / Algolia を利用したサイト内検索のための設定

WordPress / Algolia を利用したサイト内検索のための設定

この記事は デジタルキューブ & ヘプタゴン Advent Calendar 2022 の 12月19日分の記事として執筆しています。

本記事ではプラグインを利用した WordPress と Algolia の連携と日本語でサイト内検索を行うための Algolia の設定を紹介します。

AlgoliaのアカウントとAPIキー取得

最初に行う Algolia のアカウントや API キーの取得、WordPress でのプラグインインストール・設定については Amimoto ヘルプドキュメントに掲載していますので、ご参照ください。

留意点1
Algolia は無料から開始できますが、プランごとに検索回数の上限やチームユーザー数の制限があります。特に検索回数は無料枠の上限を超えると検索が実施できなくなりますので、公開用のサイトで利用する場合は支払い情報を登録しておきましょう。

留意点2
Algolia は1アカウントで複数のアプリケーションを作ることができます。
公開用と開発用とでアプリケーションを分けて管理して、テスト用の環境の準備やインデックス/レコードの混在を防ぎましょう。

Algoliaのインデックス/レコードについて

WP Search with Algolia プラグインを利用すると

  • 全ての投稿タイプの投稿が含まれるインデックス(wp_searchable_posts
  • 投稿タイプ(投稿・固定ページなど)、タクソノミー(カテゴリー、投稿タグ)、ユーザー毎のインデックス

が作成されます。

例えば投稿であれば、wp_searchable_postswp_posts_post の2つのインデックスにレコードが作成されます。

Algoliaのインデックス例
Algoliaのインデックス例

作成されたインデックスはレコードを含みます。レコードには投稿に関する情報が保存されます。
レコードに登録されている要素は Algolia ダッシュボードで検索対象に設定することで、ウェブサイト側で Algolia API を利用した検索機能で利用できます。
インデックス・レコードについてより詳しく知りたい場合はプラグイン作者の GitHub Wiki をご参照ください。

Algoliaのレコード例
Algoliaのレコード例

Algolia ダッシュボードでの設定

WordPress と Algolia の連携ができた後、Algolia ダッシュボードでいくつかの設定を行っておきます。

日本語サイトの場合に設定しておきたいこと

レコードが日本語の場合は形態素解析を実施できるように設定しておきましょう。
設定箇所はインデックスの Configuration タブにある Language になります。

Algolia インデックスの言語設定
Algolia インデックスの言語設定

形態素解析を含めた言語設定については下記の記事で解説されているのでご参照ください。

検索対象となる要素の設定

検索対象となる要素について、WP Search with Algolia プラグイン利用時のデフォルト設定は下記の通りです。
カスタムフィールドや作成者名などの要素を検索対象に加えたい場合、インデックスの Configuration タブにある Searchable attributes になります。

レコードの要素WordPress の要素検索語のマッチした位置
post_title投稿のタイトルunordered
taxonomies投稿に付与されているタクソノミー(カテゴリー、タグ、カスタムタクソノミー)unordered
content投稿の本文unordered
Algoliaの検索対象となる要素
Algoliaの検索対象となる要素

検索語のマッチした位置は対称の要素内で検索用語はマッチした位置を考慮するかどうかの設定となります。ordered にすると、より早い位置(先頭)に出てくるレコードが上位になります。

レコードの要素の並び順を変更する事もでき、並び順は検索時のランキングに影響します。初期はタイトル→タクソノミー→本文となりますが、タクソノミーよりも本文を優先させることも可能です。

検索結果のランキング/重み付けの設定

検索結果のランキングについて、WP Search with Algolia プラグイン利用時のデフォルトは下記の通りです。

種別Algoliaの要素名順序
TEXTUALRanking Criteria
CUSTOM RANKINGis_sticky(先頭に固定表示)Descending
CUSTOM RANKINGpost_date(投稿の日付)Descending
CUSTOM RANKINGrecord_index(レコードインデックス)Ascending
  1. Ranking Criteriaは Algolia のデフォルトランキングストラテジー に基づくランク付け
  2. 同じランキングの場合「先頭に固定表示」の投稿
  3. 同じランキングの場合「公開日時」の新しい投稿
  4. 同じランキングの場合「レコードインデックス」が小さい投稿

となります。

同じランキングの場合にどの要素を優先させるのか、順序の入れ替えや要素の追加を行うにはインデックスの Configuration タブにある Ranking and Sorting になります。
下記の例では投稿タイプ名、WordPressの順序パラメーター(menu_order)を追加しています。

Algoliaでのランキング/ソートの設定
Algoliaでのランキング/ソートの設定

Algolia のランキングの詳しい仕組みは下記の記事で解説されているのでご参照ください。

ウェブサイトでの検索

WP Search with Algolia プラグインは WordPress デフォルトの検索フォームを Aloglia を利用した検索フォームに置き換えます。検索結果のテンプレートはテーマでは無く WP Search with Algolia プラグインのテンプレートが利用されます。

また、Search with Algolia Instantsearch Blocks を使うことで固定ページなどに検索フォームを設置することも可能です。
LabWorks の検索ページ も Search with Algolia Instantsearch Blocks を利用しています。
詳しい利用方法や設定は Shifter ブログに掲載していますのでご参照ください。

カスタム分類による絞り込み検索や価格のようなカスタムフィールドを利用した範囲指定の絞り込みといったより高度な検索を実施したい場合は Aloglia API を利用して開発することも可能です。

最後に

今回は導入の一歩となる設定を Algolia での設定を中心にご紹介しました。
LabWorks での Algolia 活用法についてはこちらの記事もご参照ください。

Algolia はサイト内検索以外にもeコマースサイトをターゲットにしたレコメンドエンジンや検索・レコメンドともにAIを活用した機能など様々な機能が提供されています。
弊社では Algolia を活用した検索機能、関連記事表示などの導入支援サービスを行っていますので是非お気軽にお問い合わせください。

横浜市立大学附属病院 次世代臨床研究センターリクルートダイレクトスカウト
JOLLY GOOD!エピックベース株式会社
有限会社ワグ株式会社デジタルガレージ
LegalOn Technologies日本協創投資
SmartHRSHARP
mikihouseInternet Society
INFOBAHN GROUPfreee
CanCam旭化成
横浜市立大学附属病院 次世代臨床研究センターリクルートダイレクトスカウト
JOLLY GOOD!エピックベース株式会社
有限会社ワグ株式会社デジタルガレージ
LegalOn Technologies日本協創投資
SmartHRSHARP
mikihouseInternet Society
INFOBAHN GROUPfreee
CanCam旭化成
Contact

当社へご興味をお持ちいただきありがとうございます。
「こんなことやってみたい!」と、ぜひ気軽にご相談ください。
担当者よりご連絡差し上げます。