COLUMN
Vertex AI Searchで実現する高度なWeb検索の導入と活用法について解説
Webサイトの情報量が多すぎると、ユーザーが必要な情報を見つけるのが難しくなることがあります。
- 「情報がどこにあるのかわからない」
- 「興味のある内容を探すのに時間がかかる」
- 「関連性の高い情報にたどり着けない」
このように、情報が埋もれてしまい、利用者が見つけるのに苦労したりすることも多いではないでしょうか。
このような課題を解決するため、当社のWebサイトを例に、ユーザーが手軽に必要な情報にアクセスできる高度な検索機能の実装方法をご紹介します。
1. Webサイトの検索機能について
Webサイトの検索機能に関して、一般的にキーワードのマッチングに基づく検索が広く利用されています。これは、ユーザーが入力したキーワードと一致するデータを探すというシンプルな仕組みですが、文脈や検索意図を考慮しないため、関連情報を見逃したり、検索結果が膨大になったり、必要な情報が見つけにくいといった課題があります。
一方で、セマンティック検索という方法では、単語の一致にとどまらず、その言葉が持つ意味や文脈を理解して検索を行います。これにより、ユーザーの検索意図を深く理解し、より関連性の高い情報を提供することが可能です。
2. Vertex AI Searchとは
Vertex AI Searchとは、検索アプリケーションを手軽に構築できるマネージドサービスです。Googleの検索技術を活用し、自然言語処理やLLM(大規模言語モデル)などの機能を組み合わせることで、従来のキーワード一致に依存するだけでなく、セマンティック検索を用いてより関連性の高い検索結果を提供します。
Vertex AI Searchが使用するデータソースには、PDFなどの非構造化データ、JSONやCSVといった構造化データ、Webサイトなど、さまざまな形式が対応しています。使用するデータの種類に応じて「データストア」が作成され、データがインデックス化されます。
Webサイトの場合、指定したURLパターンに基づいてGoogleがウェブページのデータをクロールし、インデックス化を行います。インデックス登録の方式には、「基本的なウェブサイト検索」と「高度なウェブサイトインデックス登録」の2種類があります。「基本的なウェブサイト検索」は、Google Searchが既に作成したインデックスを利用するため、簡単かつ迅速に検索機能を構築できます。一方で、検索結果の要約やフォローアップ検索などのLLM機能、またきめ細かなインデックス制御が必要な場合は、ドメインの所有権を認証して「高度なウェブサイトインデックス登録」を有効化する必要があります。
3. Vertex AI Searchを使った検索機能
Vertex AI Searchを用いた検索の仕組みは、以下の通りです。
ユーザーが入力したクエリを解析し、誤字の修正や意図の解釈を行った後、キーワード検索とセマンティック検索を組み合わせてデータを抽出します。抽出された結果はランキング化され、関連性の高い順に表示されます。さらに、検索結果をもとにLLMが検索内容を要約したり、質問に対する具体的な回答を生成したりすることで、ユーザーのニーズに応じた柔軟で的確な情報提供を実現します。
Vertex AI Searchが実際にどのように検索できるのかを見てみましょう。
(今回は、当社のWebコラムサイトを例に挙げ、Vertex AI Searchを活用した検索機能を導入しました。)
例えば、ユーザーが「電話代行サービス」に関する記事を検索したとします。
一般的な検索の場合は、キーワードに一致した内容しか表示されないのでしょう。Vertex AI Searchを使用した場合、単なるキーワード一致ではなく、「電話」や「電話代行」という言葉が含まれていなくても、意味的に関連する内容(例:「電話自動音声システム」)も検索結果に含めることが可能です。
そして、検索クエリを「電話代行」ではなく「電話大興」と誤入力した場合でも、適切に補正された結果が表示されます。クエリの語幹から入力内容の文脈や意味を考慮した補正を行う仕組みが備わっていることがわかります。
さらに、Vertex AI Searchでは、検索結果の提示にLLMを活用することで要約や回答を生成することも可能で、検索結果を簡潔にまとめ、ユーザーに分かりやすい形で提供できます。
4. Web検索機能の実装方法
Vertex AI Searchを使った検索機能の実装方法をご説明します。
以下のような簡単な検索Webアプリケーションを作成していきます。
システム構成
完成後のイメージ
4-1. データストアの作成
Google Cloud コンソールからAgent Builderを選択し、Web検索するためのデータストアを作成します。ウェブサイトのコンテンツを選択します。
次のページから「ウェブサイトの高度なインデックス登録」にチェック入れ、インデックス登録対象のWebサイトを指定します。
最後にデータストア名を入力して、データストアを作成します。
作成完了後、Web サイトのドメイン認証をする必要があるため、所有権の証明を行います。
証明方法はGoogle Search Consoleや所有者へのメール送信等を選択できます。
詳細はこちらのドキュメントをご確認ください。
https://cloud.google.com/generative-ai-app-builder/docs/domain-verification?hl=ja#verify-domain
(オプション)
ドメイン登録後、自動的にインデックス登録が開始されますが、すぐに利用を開始するために、ここでは手動でインデックス登録を行います。
以下のパラメータを埋めてコマンドを実行します。
- 「PROJECT_ID」:Google CloudプロジェクトのID
- 「DATA_STORE_ID」:作成済みのデータストアのID
- 「URIs」:登録対象のURIs
API処理ジョブが実行されるので、しばらく時間が経過すると処理が完了します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: <PROJECT_ID>" \
"https://discoveryengine.googleapis.com/v1alpha/projects/<PROJECT_ID>/locations/global/collections/default_collection/dataStores/<DATA_STORE_ID>/siteSearchEngine:recrawlUris" \
-d '{
"uris": [<URIs(配列)>]
}'
(処理ジョブの実行状況は、operations.get APIやWebコンソール確認できます。Webコンソールの場合、以下の通り、「データストア」の「URLを確認」を選択して、登録状況チェックできます。)
4-2. アプリの作成
次にアプリを作成し、データストアに接続します。
Google Cloud コンソールからAgent Builderを選択し、検索アプリを作成します。アプリの種類を「ウェブサイト検索」に指定します。
アプリ名と会社名を入力して続行を選択します。
データストアを選択して、作成を選択します。
4-3. 動作確認
コンソールから検索機能のプレビューが可能です。最後に動作確認を行い、設定が完了します。
4-4. おまけ
Vertex AI Searchのアプリには検索用のコンポーネントが提供されているため、運用中のWebサイトに以下のように簡単に組み込むことも可能です。
メニューから「統合」を選択するとWebページ用のWidgetサンプルコードが表示されます。UIを用意する必要もなく、既存のウェブサイトに埋め込むだけで実装できます。
また、Widgetだけではなく、Discovery Engine APIやLangChainを使うなど柔軟に既存のWebアプリケーションを実装する方法もあります。ここでの紹介は割愛しますが、ご興味のある方は公式ドキュメントなどをぜひご確認ください。
5. まとめ
Vertex AI Search の良さを実感していただけたのでしょうか。今回は、Vertex AI Searchを活用したWeb検索機能についてご紹介しましたが、ドキュメント検索に特化したRAGアプリケーションや、メディア、小売など特定業界向けの検索エンジンなど、さまざまなユースケースにも対応可能です。ぜひ一度お試しください。
RECOMMEND
その他のコラム
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。