Pagefindによるサイト内検索導入方針
Decision
- サイト内検索エンジンとして Pagefind を採用する。
- 検索ページは
/searchと/{lang}/searchを提供し、各ページのhtml[lang]に応じた言語インデックスを利用する。 - ビルド手順は
astro buildの後に Pagefind インデックス生成を必須化する。 - ヘッダー検索導線は常に現在ロケールの検索ページへ遷移させる。
Context
本サイトは静的配信であり、サーバーサイド検索基盤を追加せずに全文検索を提供したい。加えて ja/en/ko/fr/de/pt の多言語URLを運用しているため、検索結果も言語ごとに分離されることが望ましい。
Options
- Option A: 外部検索サービス(SaaS)を利用する。
- Option B: 独自の検索APIを実装する。
- Option C: 静的インデックスを生成できる Pagefind を導入する(採用)。
Rationale
- Pagefind は静的HTML出力後に実行でき、Astro構成と相性が良い。
html[lang]を利用した多言語インデックス切替を標準機能で扱える。- クライアントサイドで完結するため、運用コストとインフラ依存を増やさない。
Consequences
- 本番ビルドでは
dist/pagefind/の生成を必須とする。 - 検索UIの初期導入は
@pagefind/default-uiを利用し、必要に応じて将来カスタムUIへ段階移行する。 - 検索品質の改善(除外セレクタ、重み付け、メタデータ強化)は運用後の実測を見て追加対応する。
hsb.horse