Craft CMS の管理画面で提供されている検索機能は、テンプレートや GraphQL、独自プラグインからも利用できるようになっています。
Searching | Craft CMS Documentation | 3.x
https://craftcms.com/docs/3.x/searching.html
フィールド単位でキーワード検索の対象にするかどうかを選択できるのですが、設定手順によってうまく検索結果に反映されないことがあります。
そこで、備忘録を兼ねて Craft CMS の検索インデックスをアップデートする方法についてまとめます。
これは Craft CMS Advent Calendar 2021 25日目の記事です。
フィールドを検索対象にするには
検索対象にしたいフィールドの編集画面に移動し、このフィールドの値を検索キーワードとして使用する
チェックボックスを ON にします。
検索対象になっているフィールドは、一覧に虫眼鏡アイコンが表示されます。
この状態でセクションやユーザーなど目的のフィールドレイアウトに配置し、データを入力しておけば検索できます。
検索でヒットしないときは
設定が完了しているにも関わらず、検索にヒットしないことがあります。
その場合、次のいずれかのケースに該当すると思われます。
- 既にデータが登録されているフィールドの
このフィールドの値を検索キーワードとして使用する
を ON にした - FeedMe で「Import strategy」ブロックの
Update search indexes
が OFF のフィードを実行した
Craft CMS の検索機能は searchindex
テーブルに保存されたテキストから探すため、データを再保存して検索インデックスを更新しておく必要があります。
エントリの検索インデックスを更新する
検索インデックスの更新は、コマンドラインから行います。
./craft resave/entries --section=member --update-search-index=1
サンプルでは、ハンドル名 member
のセクションに登録されたエントリを再保存し、検索インデックスを更新します。
処理が完了すると、検索でヒットするようになりました。
対象とするエレメントによって設定可能なオプションが異なるため、公式ドキュメントも確認してみてください。
Console Commands > resave
https://craftcms.com/docs/3.x/console-commands.html#resave
最後に
このページ内のキャプチャー画像に含まれる氏名、ふりがな、ローマ字表記は、User Local さんが提供されている「個人情報テストデータジェネレーター」から取得したダミーデータです。
個人情報テストデータジェネレーター
https://testdata.userlocal.jp/
万一、同姓同名の方がいらっしゃる場合でも、特定の個人とは一切の関係がありませんのであらかじめご了承ください。