表記ゆれと検索意図に対応する検索エンジンのリプレイス
2026.10.29
導入背景・課題
ある月間数千万ページビュー規模の旅行サイトでは、古い世代の検索エンジンを使い続けており、検索精度に課題を抱えていた。同じ店舗を探していても、単語の語順やスペースの有無が違うだけで、検索結果が大きく変わってしまう状態だった。
また、利用者が「カフェ」と入力した際に、現在地の近くを探したいのか、特定のエリアの中を探したいのかをシステムが判別できず、利用者自身に検索範囲を手動で選ばせる必要があった。
また、利用者が「カフェ」と入力した際に、現在地の近くを探したいのか、特定のエリアの中を探したいのかをシステムが判別できず、利用者自身に検索範囲を手動で選ばせる必要があった。
解決策
稼働中のサイト本体には一切手を加えず、検索処理だけを新規構築したAPIサーバーに切り出す形で検索エンジンをリプレイスした。
表記ゆれへの対応では、言い換えの登録先を更新頻度に応じて複数の階層に分け、流行語のように日々増える言葉は運用担当者が1行追加するだけで即座に反映できるようにした。
検索意図の解釈では、入力された言葉を地名・業種・料理名などに仕分けた上で、探す範囲と絞り込み方を自動で切り替える仕組みとした。
生成AIの活用も選択肢にあったが、ランニングコストと結果の安定性などを優先し、あえて使わない設計を選択した。
表記ゆれへの対応では、言い換えの登録先を更新頻度に応じて複数の階層に分け、流行語のように日々増える言葉は運用担当者が1行追加するだけで即座に反映できるようにした。
検索意図の解釈では、入力された言葉を地名・業種・料理名などに仕分けた上で、探す範囲と絞り込み方を自動で切り替える仕組みとした。
生成AIの活用も選択肢にあったが、ランニングコストと結果の安定性などを優先し、あえて使わない設計を選択した。
効果
語順やスペースの違いで検索結果が大きく変わる状態が解消され、利用者に検索範囲を手動で選ばせていたオプションも不要になり、検索UXの向上に寄与した。また、新しい言葉が流行しても運用担当者自身が即座に辞書へ反映できるため、検索品質を継続的に維持しやすい運用方法となった。
検索処理のBefore・Afterの例
例1:
Before:店舗の正式名称やメニューには含まれない流行語で検索してヒットしない
After:頻繁に更新のあるカテゴリの辞書登録は即座に反映し、更新の頻度に応じた5つの階層で処理させることで、入力の言い換えに対して柔軟な検索を可能にした
例2:
Before:「カフェ」だけでは近くか全国か分からない
After:地名の有無やマップを見ている範囲で探す範囲を切り替え、検索意図を推定した
例3:
Before:「バー」でバーガーキングが出る
After:業種の指定だと判断して業種で絞り込む
検索処理のBefore・Afterの例
例1:
Before:店舗の正式名称やメニューには含まれない流行語で検索してヒットしない
After:頻繁に更新のあるカテゴリの辞書登録は即座に反映し、更新の頻度に応じた5つの階層で処理させることで、入力の言い換えに対して柔軟な検索を可能にした
例2:
Before:「カフェ」だけでは近くか全国か分からない
After:地名の有無やマップを見ている範囲で探す範囲を切り替え、検索意図を推定した
例3:
Before:「バー」でバーガーキングが出る
After:業種の指定だと判断して業種で絞り込む