このページでは、構造化データ、メタデータを含む非構造化データ、カスタムの構造化属性を含むウェブサイトのデータ用にアプリを設定するスキーマ フィールドを構成する方法について説明します。
フィールド設定は、Agent Search が結果でフィールドを使用する方法を決定するのに役立ちます。コンソールの Google Cloud [スキーマ] タブを使用して、フィールド設定を構成できます。
フィールド設定の構成は、構造化データまたはメタデータを含む非構造化データを含むデータストアがあるアプリでのみ使用できます。
フィールド設定
検索データまたはレコメンデーション データの多くのフィールド タイプでは、次のフィールド設定を使用できますが、すべてのデータ型で使用できるわけではありません。スキーマには、個々のフィールドの複数のフィールド設定が含まれています。次の表に、スキーマ内のフィールドに適用できる設定を示します。これらのフィールド設定には、構造化データを使用することを強くおすすめします。
| 設定 | 定義 | 目的 | ユースケースの例 |
|---|---|---|---|
| インデックスを作成可能 | フィールドをインデックスを作成可能に設定すると、ドキュメント内の構造化フィールドでフィルタリング、ブースト、ファセットなどの操作が可能になります。
|
フィールドを フィールドを |
ホテルのデータストアでは、フィールドを
たとえばhotel_chainインデックスを作成可能に設定できます。これにより、ランキング、
フィルタリング、ブーストの操作をhotel_chainに適用できます。たとえば、
フィルタを適用して、フィルタされたホテル チェーンを含む検索結果のみが表示されるようにできます。 |
| 検索可能 |
検索に関連する可能性が最も高いフィールドは、
検索に関連する可能性が最も高いフィールドは、 検索可能としてマークできるのは、テキスト値を含むフィールド のみです。したがって、数値の価格フィールドは インデックスを作成可能(フィルタリングまたはファセット用)にできますが、全文検索はできません。 |
フィールドを検索可能 に設定すると、検索クエリでの そのフィールドの再現率が向上し、ユーザーはウェブ ページなどのコンテンツをこれらのフィールド内のテキストをクエリして見つけることができます。フィールドを 検索可能としてマークすると、ランキングを適用できます。そのため、検索可能としてマークするフィールドが多すぎると、ランキング アルゴリズムが飽和状態になり、結果が多すぎるため、検索精度に悪影響を及ぼす可能性があります。これにより、関連性のない検索結果が返される可能性があります。 検索可能フィールドに相対的な重み付けを適用できますが、 デフォルトが堅牢であるため、ほとんどの場合必要ありません。詳しくは、検索可能フィールドに重み付けするをご覧ください。 |
インターネット サービス プロバイダのサポート チケット システムでは、各チケットが構造化
ドキュメントとして保存されます。これらのドキュメントに、
|
| 動的ファセット可能 | コンテキストを認識した
フィルタを提供して、ユーザーの検索をより適切に絞り込みます。フィールドを
Dynamic Facetable として設定すると、フィールドに存在する一意の値に基づいて、インタラクティブなフィルタ(ファセット)が自動的に
生成されます。 |
フィールドを Dynamic
facetable に設定すると、ユーザーは、取り込んだデータから直接派生したカテゴリや属性を選択して検索結果を動的に絞り込むことができます。考えられるすべてのフィルタ オプションを手動で事前定義する必要はありません。これにより、ユーザーは検索を非常に具体的なウェブ コンテンツに絞り込むことができます。動的ファセット可能 と検索可能 を組み合わせて使用すると、検索の再現率とユーザーに提供されるファセットの品質の両方が向上し、より良い結果が得られます。 |
人事ポリシーなどの社内ナレッジベースのページは、
department、
document_type、または last_modified_date などのデータとともに取り込まれます。これらのフィールドに dynamic facetable というタグが付けられている場合、従業員が「経費精算」などの語句を検索すると、関連する検索結果に基づいてインタラクティブなフィルタが動的に生成されます。この場合、ウェブ インターフェースには、
部門: 財務、出張、ドキュメント タイプ: ポリシー、
FAQ、または 最終更新日: 今四半期、昨年
のファセットが表示されます。 |
| 取得可能 | 検索クエリが一致する コンテンツにヒットすると、検索エンジンは取得可能なフィールドの値を取得して 表示したり、アプリケーションで使用したりできます。つまり、 元のドキュメントの情報が検索結果の一部として表示されます。キーフィールド (ドキュメントの一意の識別子)は取得可能として設定されます。 | 取得可能なフィールドは、値を表示できるフィールドと、検索ロジックでのみ使用され、元の値がエンドユーザーに表示されないフィールドを区別することで、検索コンテキストを提供します。 | 販売サイトでの商品検索の場合、
product_id、name、price、
image_url は、取得可能として設定する一般的なフィールドです。一方、internal_tracking_code は
管理目的でのみインデックス登録とフィルタリングが可能ですが、
一般公開の検索結果では取得できません。 |
| 完了可能 | フィールドの内容を検索クエリの候補として使用できます。詳細については、予測入力を構成するをご覧ください。 | この設定により、ユーザーが入力したときに、そのフィールド内の値 をリアルタイムのクエリ候補として使用できます。この 機能は、ユーザーが関連性の高いコンテンツを見つけやすくし、 検索プロセスを迅速化するのに役立ちます。自然言語フィルタリングの使用などの特定の要因が このパフォーマンスに影響する可能性があります。 |
product_name、brand、および category に設定されている場合、ユーザーが「Tech」と入力すると、自動補完候補に次のものが表示されます。completable |
| フィルタ可能 | レコメンデーションでフィールドを使用して、おすすめの結果をフィルタリング し、ユーザーに表示する検索結果を決定できます。レコメンデーションのフィルタリングについては、レコメンデーションをフィルタリングするをご覧ください。 | フィールドを Filterable に設定すると、ユーザー向けのおすすめをカスタマイズできます。フィルタリングの上限が適用されることに注意してください。 |
言語とドラマによるフィルタ設定は、language_code: ANY("en", "fr") OR categories: ANY("drama") のようになります。 |
よく使用される設定の違い
インデックスを作成可能、検索可能、取得可能のフィールド設定には、重要な違いがあります。次の表に、これらの違いをまとめます。
| 機能 | インデックスを作成可能 | 検索可能 | 取得可能 |
|---|---|---|---|
| 主な役割 | フィールド コンテンツを検索エンジンで使用できるようにする | フィールド コンテンツに対して全文検索クエリを実行できるようにする | フィールドの値を検索結果で返せるようにする |
| 分析 | コンテンツが処理され、インデックスに配置される。 | 通常、広範な語彙分析が行われる。 | 値はそのまま保存され、表示される。 |
| 次の操作は可能ですか? | |||
| ...検索可能にする | はい(前提条件であることが多い) | なし | 必ずしもそうとは限らない(検索可能でなくても取得可能にできる) |
| ...取得可能にする | 必ずしもそうとは限らない | 必ずしもそうとは限らない | なし |
| ...フィルタ可能/並べ替え可能/ファセット可能にする | はい(通常、これらも前提条件) | 直接ではない。これらは、インデックスを作成可能なフィールドに基づいて構築されることが多い、個別の属性です。 | 直接ではない。これらの属性は、フィールドのインデックス登録と クエリの方法に関連しており、表示だけではありません。 |
実際には、ユーザー エクスペリエンスに不可欠な多くのフィールド(タイトル、説明、識別情報など)は、indexable、searchable、retrievable に設定されることがよくあります。
制限事項
フィールド設定には次の制限があります。
- 最大 50 個のフィールドを、インデックスを作成可能、検索可能、取得可能、動的ファセット可能として構成できます。
- フィールドを動的ファセット可能として構成するには、まずインデックス登録可能として構成する必要があります。
- インデックスを作成可能な設定を変更するには、データのインデックスを再登録する必要があります。特に大規模なデータストアの場合、この処理に数時間かかることがあります。
メディア検索アプリのフィールドを構成していて、スキーマ内のフィールドの詳細情報が必要な場合は、メディア ドキュメントとデータストアについてをご覧ください。
フィールド設定を更新する
フィールド設定を更新するには:
コンソールで、[AI アプリケーション] ページに移動します。 Google Cloud
編集するアプリの名前をクリックします。
[データ] をクリックします。
[スキーマ] タブをクリックします。このタブには、現在のフィールド設定が表示されます。
データストアに基本的なウェブサイト データやメタデータのない非構造化データが含まれている場合、[Schema] タブは表示されません。
[編集] をクリックします。
更新する必要があるフィールド設定を選択または選択解除します。一部のフィールド設定はサポートされていません。たとえば、数値フィールドを [検索可能] に設定することはできません。
[保存] をクリックして変更を適用します。
検索可能フィールドに重み付けする(プレビュー)
フィールドを検索可能としてマークする場合は、検索結果での相対的な重要度を示す重みを指定できます。デフォルトの重みで適切に機能するため、ほとんどの場合、個々のフィールドに重みを指定する必要はありません。
ただし、次のような状況では、重みを調整する必要がある場合があります。
重み付けされたフィールドをすでに使用している既存の検索プラットフォームからデータを移行する場合。
デフォルトの重みで十分な検索結果が得られない場合。 特に、検索可能なフィールドが多く、一部のフィールドが他のフィールドよりも明らかに重要な場合に発生する可能性があります。
たとえば、検索で最も重要なフィールドが概要であるため、そのテキストを優先したいとします。
または、スキーマに検索結果の優れた予測因子となる関連性の高いキーワードを含むフィールドがあるが、このフィールドは他のフィールドよりもはるかに短いため、その影響は長いフィールドによって隠れてしまうことがよくあります。 重みを大きくすると、意図した効果が得られます。
重みレベル
重みは次のレベルに分類されます。
| フィールドの重要度 | 説明 |
|---|---|
| 非常に低い | すべてのフィールドのスコアを組み合わせるときに、システムが考慮する低い値。効果が無視できるほど重みを小さくしたい場合は、 フィールドを検索可能としてマークしないでください。 |
| 低い | デフォルトよりも低い重み。 |
| デフォルト | 検索可能フィールドの標準の重み。この重みにより、 ほとんどの場合、十分なパフォーマンスが得られます。 |
| 高い | デフォルトよりも明らかに高い重み。 |
| 非常に高い | 支配的な重み。通常、これは最大で 1 つの フィールドに予約します。 |
スキーマの更新とインデックスの再作成
検索可能フィールドに重みを追加するには、スキーマを更新し、データストア内のデータのインデックスを再作成する必要があります。スキーマの更新には数時間かかります。インデックス登録が完了したことを示す信頼できる指標がないため、インデックス登録時間を過大に見積もる必要があります。
フィールドに重みレベルを設定する
フィールドの重みレベルを設定する作業は、小さな変更のみを行い、意図しない結果がないか確認するために、後で検索結果を慎重に確認する必要があるため、面倒な作業になる可能性があります。変更を加えた後は、インデックスの再作成が完了するまで待ってから、変更の影響を評価する必要があります。
検索フィールドの重み付けは、API を介してのみ構成できます。この機能は コンソールではご利用いただけません。 Google Cloud
重みを設定するには、API
projects.locations.dataStores.schemas.patch
メソッドを使用して、データストアのスキーマを更新する必要があります。
手順に沿って、プログラムでスキーマを 更新します。 次の例のように、1 つ以上の検索可能フィールドに重みを追加します。
"summary": { "type": "string", "searchable": true, "weight": "high" }, "uri": { "type": "string", "searchable": true, "weight": "low" },この例では、
summaryフィールドは通常よりも高い重みに設定され、uriフィールドは低い重みに設定されています。重みをデフォルト値に戻す場合は、defaultに設定します。weight パラメータに指定できる値は次のとおりです。
very_lowlowdefaulthighvery_high
インデックスの再作成が完了するまで待ってから、検索行動をテストします。