検索品質とは、検索クエリを作成するユーザーによって認識されるランキングと再現率から見た、検索結果の品質のことです。
ランキングとはアイテムの順序付けであり、再現率とは取得された適合アイテムの数です。アイテム(ドキュメントとも呼ばれます)とは、 Google Cloud Search がインデックスに登録できるデジタル コンテンツです。アイテムの種類には、Microsoft Office ドキュメント、PDF ファイル、データベース内の行、URL などがあります。アイテムは以下のものから構成されます。
- 構造化メタデータ
- インデックス登録可能なコンテンツ
- ACL
Cloud Search では、さまざまなシグナルを使用して、検索クエリの結果(つまり、検索クエリによって得られるアイテム)を取得してランク付けします。スキーマ、アイテムのコンテンツとメタデータ(インデックス登録時)、検索アプリケーションの設定によって、Cloud Search のシグナルに影響を与えることができます。このドキュメントの目的は、検索品質を向上させるために、シグナルに影響を与える設定をどのように調整すればよいかを学ぶことです。
推奨される設定とオプションの設定の概要については、検索品質の推奨される設定とオプションの設定の概要をご覧ください。
トピカリティ スコアに影響を与える
トピカリティとは、検索結果と元のクエリ語句との関連度を指します。アイテムのトピカリティは、次の基準に基づいて計算されます。
- 各クエリ語句の重要度。
- ヒット数(アイテムのコンテンツやメタデータにクエリ語句が出現する回数)。
- Cloud Search でインデックス登録されたアイテムと一致するクエリ語句とそのバリエーションのタイプ。
テキスト プロパティのトピカリティ スコアに影響を与えるには、
RetrievalImportance
を定義します。
値を指定する必要があります。最高レベルの宿泊施設との一致
RetrievalImportance
は、
RetrievalImportance
が低いホテルです。
たとえば、次のような特徴を持つデータソースがあるとします。
- データソースはソフトウェア バグの履歴を保存するために使用される。
- 各バグには名前、説明、優先度がある。
ほとんどのユーザーはバグ名を使用してこのデータソースをクエリするため、
スキーマで名前の RetrievalImportance
を HIGHEST
に設定します。
逆に、ほとんどのユーザーは
説明の RetrievalImportance
を DEFAULT
に設定します。
RetrievalImportance
設定を含むサンプル スキーマを次に示します。
{
"objectDefinitions": [
{
"name": "issues",
"propertyDefinitions": [
{
"name": "summary",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGHEST
}
}
},
{
"name": "description",
"textPropertyOptions": {
"retrievalImportance": {
"importance": DEFAULT
}
}
},
{
"name": "label",
"isRepeatable": true,
"textPropertyOptions": {
"retrievalImportance": {
"importance": DEFAULT
}
}
},
{
"name": "comments",
"textPropertyOptions": {
"retrievalImportance": {
"importance": DEFAULT
}
}
},
{
"name": "project",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGH
}
}
},
{
"name": "duedate",
"datePropertyOptions": {
}
},
...
]
}
]
}
HTML ドキュメントの場合は、<title>
や <h1>
などのタグと
フォントサイズや太字などの書式設定は、
重要な用語です。もし
ContentFormat
TEXT
、
ItemContent
取得重要度は DEFAULT
で、HTML の場合は取得重要度
HTML プロパティに基づいて決定されます。
鮮度に影響を与える
鮮度: アイテムがどれだけ最近変更され、特定されたかを測定します
プロパティの createTime
と updateTime
のプロパティによって
ItemMetadata
。
古いアイテムは検索結果での順位が下がります。
更新頻度を調整することで、オブジェクトの鮮度の計算方法に影響を与えることができます。
freshnessProperty
と freshnessDuration
FreshnessOptions
あります。
freshnessProperty
を使用すると、日付またはタイムスタンプのプロパティを使用できます。
コンピューティングの鮮度をupdateTime
します。
先ほどのソフトウェア バグ トラッキング システムの例では、期限を
freshnessProperty
として使用して、期限が
最新の日付がより新しいものと見なされ、ランキングが上昇します。フォロー中
freshnessProperty
設定を含むサンプル スキーマ:
{
"objectDefinitions": [
{
"name": "issues",
"options": {
"freshnessOptions": {
"freshnessProperty": "duedate"
}
},
"propertyDefinitions": [
{
"name": "summary",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGHEST
}
}
},
{
"name": "duedate",
"datePropertyOptions": {
}
},
...
]
}
]
}
freshnessDuration
を使用して、古いアイテムとみなされるタイミングを特定します。
たとえば、定期的にインデックス登録されないデータソースや、
鮮度がランキングに影響を与えたくない場合に
役立ちますこれを達成するには
freshnessDuration
に高い値を指定して、目標を達成できます。
たとえば、従業員のプロフィール情報を含むデータソースがあるとします。この
たとえば、従業員数が変更されたため、高い freshnessDuration
が
多くの場合、情報は従業員のランキングと無関係です。フォロー中
freshnessDuration
設定を含むサンプル スキーマ:
{
"objectDefinitions": [
{
"name": "people",
"options": {
"freshnessOptions": {
"freshnessDuration": "315360000s", # 100 years
}
},
}
]
}
データソースの freshnessDuration
に非常に小さな値を設定することもできます。
ニュース記事を含むデータソースなど、コンテンツが急速に変化する場合。
このシナリオでは、最近作成または変更されたドキュメントが最も関連性が高まります。
データの freshnessDuration
設定を含むサンプル スキーマを次に示します。
ソース:
{
"objectDefinitions": [
{
"name": "news",
"options": {
"freshnessOptions": {
"freshnessDuration": "259200s", # 3 days
}
},
}
]
}
品質に影響を与える
品質とは、アイテムの正確さと有用性を表すものです。データソースには、意味の類似したドキュメントが複数含まれていることがありますが、各ドキュメントの品質はさまざまです。0 ~
1(SearchQualityMetadata
を使用)。
値が大きいアイテムは、値が低いアイテムよりもランキングが上がります。
使用できます。この設定は、Cloud Search に提供される情報の範囲外でアイテムの品質に影響を与える(品質を上げる)必要がある場合にのみ使用してください。
たとえば、従業員の福利厚生に関するドキュメントを含むデータソースがあるとします。SearchQualityMetadata
を使用すると、検索結果のランキングを上げることができます
人事部の従業員が作成したドキュメントが、他の企業のドキュメントよりも
できます。
以下は、SearchQualityMetadata
の設定を含むサンプル スキーマです。
次のような問題があります。
{
"name": "datasources/.../items/issue1",
"acl": {
...
},
"metadata": {
"title": "Issue 1"
"objectType": "issues"
},
...
}
{
"name": "datasources/.../items/issue2",
"acl": {
...
},
"metadata": {
"title": "Issue 2"
"objectType": "issues"
"searchQualityMetadata": {
"quality": 0.5
}
},
...
}
{
"name": "datasources/.../items/issue3",
"acl": {
...
},
"metadata": {
"title": "Issue 3"
"objectType": "issues"
"searchQualityMetadata": {
"quality": 1
}
},
...
}
このスキーマの場合、ユーザーが検索語句「issue」で検索すると、スキーマ内の Issue 3(品質は 1)は、Issue 2(品質は 0.5)や Issue 1(指定がなければデフォルトの品質は 0 です)よりも高くランク付けされます。
項目の型によって影響を与える
Cloud Search では、整数型または列挙型プロパティの値に基づいてランキングに影響を与えることができます。整数または列挙型プロパティごとに、
OrderedRanking
指定できます。以下の値が設定可能です。
NO_ORDER
(デフォルト): このプロパティはランキングに影響しません。ASCENDING
: 整数型または列挙型プロパティの値が高いアイテムは、値が低いアイテムよりもランキングが上がります。DESCENDING
: 整数型または列挙型プロパティの値が低いアイテムは、値が高いアイテムよりもランキングが上がります。
たとえば、バグ トラッキング システムの各バグに、バグの優先度を HIGH
(1)、MEDIUM
(2)、LOW
(3)のいずれかとして格納する列挙型プロパティがあるとします。このシナリオでは、OrderedRanking
を DESCENDING
に設定すると、次のようになります。
優先度が LOW
のバグに比べて、優先度が HIGH
のバグがランキングが上がりました。
以下は、問題に対する OrderedRanking
設定を含むサンプル スキーマです。
バグ トラッキング システム:
{
"objectDefinitions": [
{
"name": "issues",
"options": {
"freshnessOptions": {
"freshnessProperty": "duedate",
}
},
"propertyDefinitions": [
{
"name": "summary",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGHEST
}
}
},
{
"name": "duedate",
"datePropertyOptions": {
}
},
{
"name": "priority",
"enumPropertyOptions": {
"possibleValues": [
{
"stringValue": "HIGH",
"integerValue": 1
},
{
"stringValue": "MEDIUM",
"integerValue": 2
},
{
"stringValue": "LOW",
"integerValue": 3
}
],
"orderedRanking": DESCENDING,
}
},
...
]
}
]
}
バグ トラッキング システムには、votes
という整数プロパティを使用して、
バグの相対的な重要度についてユーザーからのフィードバックを収集する。これを使用して、
votes
プロパティ: 検索結果の重要度を高くして、ランキングに影響を与える
最も多く投票されたバグです。この場合は
OrderedRanking
votes
プロパティの ASCENDING
として指定し、最も多くの投票数で問題が生じるようにします。
ランキングが上がりますOrderedRanking
を含むサンプル スキーマを次に示します。
: バグ トラッキング システムでの問題に関する設定:
{
"objectDefinitions": [
{
"name": "issues",
"propertyDefinitions": [
{
"name": "summary",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGHEST
}
}
},
{
"name": "description",
"textPropertyOptions": {
"retrievalImportance": {
"importance": DEFAULT
}
}
},
{
"name": "votes",
"integerPropertyOptions": {
"orderedRanking": ASCENDING,
"minimumValue": 0,
"maximumValue": 1000,
}
},
...
]
}
]
}
クエリ拡張によってランキングに影響を与える
クエリ拡張とは、より良い結果を取得するために、類義語とスペルを使用してクエリの語句を拡張することです。
類義語を使用して検索結果に影響を与える
Cloud Search では、公開されているウェブ コンテンツから推論される類義語を利用してクエリの語句を拡張します。また、カスタムの類義語を定義して、組織内で使われる共通の頭字語のような組織固有の用語や、業界固有の用語を取り込むこともできます。
カスタムの類義語は、データソース内で定義することも、別のデータソースとして定義することもできます。デフォルトでは、類義語はすべての検索のすべてのデータソースに適用されます。 説明します。ただし、データソースやルールごとに類義語を 検索できます。カスタム類義語を定義する方法については、 グループ化する方法については、 類義語を定義する。
スペルを使用して検索結果に影響を与える
Cloud Search では、公開されている Google 検索のデータを使用して構築したモデルに基づいて、スペル候補を表示します。Cloud Search がコンテキスト内でスペルミスを検出した場合
入力すると、クエリの候補が
SpellResult
。
スペル候補は候補としてユーザーに表示できます。たとえば、ユーザーが「employe」という間違ったスペルでクエリを実行すると、「もしかして: employee」のように候補が表示されることがあります。
また、Cloud Search では、スペルの修正を類義語として使用し、スペルミスのせいで見逃される可能性があるドキュメントの取得に役立てています。
検索アプリケーションの設定によってランキングに影響を与える
Google Cloud Search の概要で説明されているように、検索アプリケーションは、検索インターフェースに関連付けられている場合に検索に関するコンテキスト情報を提供する一連の設定です。次の構成により、検索アプリケーションを通してランキングに影響を与えることができます。
- スコアリング構成
- ソース構成
次の 2 つのセクションでは、これらの構成がランキングに影響を与えるうえでどのように役立つかを説明します。
スコアリング構成を調整する
検索アプリケーションごとに、ScoringConfig を指定して、ランク付けの際に一部のシグナルの適用を制御できます。現在、 鮮度とパーソナライズを無効にできます。
鮮度を無効にすると、データソースのスキーマで指定された鮮度のオプションにかかわらず、検索アプリケーションにリストされているすべてのデータソースについて鮮度が無効になります。同様に、パーソナライズが無効になっている場合は、オーナー ブーストとインタラクション ブーストはランキングに影響しません。
この設定の詳しい手順については、 Cloud Search の検索エクスペリエンスをカスタマイズする
ソース構成を調整する
ソース構成によって、検索アプリケーションのデータソース レベルの設定を行えます。次の設定がサポートされています。
- ソースの重要度
- クラウディング
ソースの重要度を設定する
ソースの重要度とは、検索アプリケーション内のデータソースの相対的な重要度のことです。この設定は SourceImportance
フィールドで指定できます
内側
SourceScoringConfig
。
ソースの重要度が HIGH
のデータソースのアイテムは、ランキングが上がります
ソースが DEFAULT
または LOW
のデータソースのアイテムとの比較
重要ですユーザーが特定のデータソースからの結果を好むと思われる場合は、この設定を使用してランキングに影響を与えます。
たとえば、外部および内部のトラブルシューティング データを含むプロダクト サポート ポータルがあるとします。この場合、内部データソースからの結果を優先するように検索アプリケーションを構成できます。
この設定の詳しい手順については、 Cloud Search の検索エクスペリエンスをカスタマイズする
クラウディングを設定する
クラウディングとは、検索アプリケーションのデータソースから返される可能性がある結果の最大数のことです。この値
numResults
フィールドを使用して制御できます。
SourceCrowdingConfig
。
この値はデフォルトは 3 で、あるデータから 3 つの結果が示されている場合です。
ソースの Cloud Search が他のデータソースからの結果の表示を開始します。すべてのデータソースがそれぞれのクラウディングの上限に達した場合や、他のデータソースから得られる結果がなくなった場合にのみ、最初のデータソースのアイテムが再度使用されます。
この設定は、検索結果の多様性を確保し、検索結果ページが 1 つのデータソースで占められるのを防ぐのに役立ちます。
この設定の詳しい手順については、 Cloud Search の検索エクスペリエンスをカスタマイズする
パーソナライズによってランキングに影響を与える
パーソナライズとは、結果にアクセスする個々のユーザーに基づいてパーソナライズされた検索結果を表示することです。次の基準に基づいてアイテムに優先順位を付けることで、ランキングに影響を与えることができます。
- アイテムのオーナー
- アイテムのインタラクション
- ユーザーがクリック
- アイテムの言語
次の 3 つのセクションでは、これらの基準に基づいて検索品質に影響を与える方法を説明します。
アイテムのオーナーに基づいてランキングを上げる
「アイテムのオーナーに基づいてランキングを上げる」とは、検索クエリを実行するユーザーがオーナーであるアイテムのランキングを上げることです。各アイテムには
ItemAcl
owners
フィールドに置き換えます。クエリを実行するユーザーがアイテムのオーナーである場合、デフォルトで、そのアイテムのランキングが上がります。このパーソナライズは検索アプリケーションでオフにできます。
アイテムのインタラクションに基づいてランキングを上げる
「アイテムのインタラクションに基づいてランキングを上げる」とは、検索クエリを実行するユーザーがインタラクション(閲覧、コメント、編集など)を行ったアイテムのランキングを上げることです。
Google Workspace でアイテムのインタラクション シグナルが自動的に取得される 次のようなプロダクトです。他のプロダクトでは、インタラクションの種類(閲覧や編集)、インタラクションのタイムスタンプ、プリンシパル(アイテムに対してインタラクションを行ったユーザー)など、アイテムレベルのインタラクション データを利用できます。インタラクションを行ってから経過した時間が短いアイテムは、ランキングが高くなります。
ユーザーのクリック数に基づいてランキングを上げる
Cloud Search は現在の検索結果のクリックを収集し、それを使用して ユーザーによる検索結果のランキングを上げるために、 できます。
クエリ解釈によってランキングに影響を与える
Cloud Search のクエリ解釈機能は、ユーザーのクエリ内の演算子とフィルタを自動的に解釈し、それらの要素を構造化された演算子ベースのクエリに変換します。クエリ解釈では、インデックス付きドキュメントとともに、スキーマで定義された演算子を使用して、ユーザのクエリの意味を推測します。この機能により、ユーザーは最小限のキーワードで検索できるとともに、正確な結果が得られます。詳しくは 最適なクエリ解釈のためのスキーマを構造化する。
アイテムの言語に基づいてランキングを上げる
「アイテムの言語に基づいてランキングを上げる」とは、クエリの言語と一致しない言語のアイテムのランキングを下げることです。次の要因が検索結果のランキングに影響します 言語によって異なります。
クエリ言語。検索クエリの自動検出された言語 Pod 内に指定された
languageCode
RequestOptions
。カスタム検索インターフェースを作成する場合は、
languageCode
を ユーザーのインターフェース言語や言語設定( 。自動検出されたクエリ 言語がlanguageCode
より優先されるため、検索品質は ユーザーが使用している言語とは異なる言語でクエリを入力すると、 行うことができます。アイテムの言語。インデックス時に
ItemMetadata
に設定されたcontentLanguage
Cloud Search で自動的に検出されたコンテンツの言語です。インデックス時にドキュメントの
contentLanguage
が空のままで、かつItemContent
を入力すると、Cloud Search は言語の検出を試みます。ItemContent
で使用され、内部に保存されます。自動検出されたcontentLanguage
フィールドには追加されません。
クエリとアイテムの言語が一致する場合、言語によりランキングが下げられることはありません。条件
これらの設定が一致しない場合、そのアイテムは降格されます。言語の降格は
contentLanguage
が空で、Cloud Search が行えなかったドキュメントに適用されました
言語が自動的に検出されます。そのため、ドキュメントのランキングは
Cloud Search が言語を検出できない場合に影響が生じます。
アイテムのコンテキストに基づいてランキングを上げる
コンテキストとの関連性が高いアイテムのランキングを上げることができます
表示されます。背景
(contextAttributes
)
インデックス登録時と
特定の検索クエリのコンテキストを提供します。
たとえば、従業員福利厚生の書類のような商品が
Location
および Department
のコンテキスト(都市など)で関連性が高い
(San Francisco
)、州(California
)、国(USA
)、Department
(Engineering
)。この場合、次のようにアイテムをインデックスに登録できます。
名前付き属性:
{
...
"metadata": {
"contextAttributes": [
{
name: "Location"
values: [
"San Francisco",
"California",
"USA"
],
},
{
name: "Department"
values: [
"Engineering"
],
}
],
},
...
}
ユーザーが「特典」という検索語句を入力したときクリックすると ユーザーの所在地や部署が検索に含めることができます リクエストできます。たとえば、場所と部門を含む検索リクエストがあるとします。 シカゴにいるエンジニアのための情報です
{
...
"contextAttributes": [
{
name: "Location"
values: [
"Chicago",
"Illinois",
"USA"
],
},
{
name: "Department"
values: [
"Engineering"
],
}
],
...
}
インデックス登録されたアイテムと検索リクエストの両方に、 「部門=エンジニアリング」「Location=USA」をインデックス付けされたアイテム(従業員 福利厚生書類など)が検索結果の上位に表示されます。
ここで、別のユーザーがインド在住のエンジニアが「 「メリット」追加できます次の検索リクエストがあります: 場所と部門の情報:
{
...
"contextAttributes": [
{
name: "Location"
values: [
"Bengaluru",
"Karnataka",
"India"
],
},
{
name: "Department"
values: [
"Engineering"
],
}
],
...
}
インデックス登録されたアイテムと検索リクエストの両方に "Department=Engineering" 属性をインデックス登録されたアイテムが、 (最初の検索クエリとの比較) 「メリット」米国イリノイ州シカゴ在住のエンジニアが入力)。
ランキングを上げるために使用できるコンテキストの例を以下に示します。
- 場所: 建物、都市、国、地域など、特定の場所にいるユーザーに関連性の高いアイテムを表示できます。
- 職種: テクニカル ライターやエンジニアなど、特定の職種のユーザーとの関連性が高いアイテムを選ぶことができます。
- 部門: 営業やマーケティングなど、特定の部門に関連する項目です。
- 職務レベル: ディレクターや CEO など、特定の職務レベルに適した項目です。
- 従業員タイプ: パートタイムやフルタイムの従業員など、特定のタイプの従業員との関連性が高いアイテムになります。
- 在職期間: 新入社員など、従業員の在職期間との関連性がより高い項目を設定できます。
アイテムの人気度でランキングに影響を与える
人気アイテムのランキングを上げる Cloud Searchつまり、最近の検索クエリでクリックが発生した商品アイテムの表示順位が上がります。
クリック ブーストによるランキングへの影響
Cloud Search は、現在の検索結果のクリック数を収集し、特定の検索クエリで人気のあるアイテムをブーストすることで、今後の検索でのランキングの改善に活用します。
推奨およびオプションの検索品質設定の概要
次の表に、推奨される検索品質と任意の検索品質を示します。 設定。この推奨設定は、Cloud Search のランキング モデルから最大限の効果を引き出すのに役立ちます。
設定 | 場所 | 推奨 / オプション | 詳細 |
---|---|---|---|
スキーマ設定 | |||
ItemContent フィールド | ItemContent | 推奨 | スキーマの作成時または更新時に、アイテムの非構造化コンテンツを入力します。この項目はスニペットの生成に使用されます。 |
RetrievalImportance フィールド | RetrievalImportance | 推奨 | スキーマの作成時または更新時に、明らかに重要性またはトピカリティがあるテキスト プロパティに設定します。 |
FreshnessOptions | FreshnessOptions | オプション | スキーマの作成時または更新時に、誤ったデータやデータの欠落が原因でアイテムのランキングが下がらないように設定します。 |
インデックス登録の設定 | |||
createTime /updateTime | ItemMetadata | 推奨 | アイテムのインデックス登録時に入力します。 |
contentLanguage | ItemMetadata | 推奨 | アイテムのインデックス登録中にデータが入力されます。存在しない場合、Cloud Search はItemContent で使用されている言語の検出を試みます。 |
owners フィールド | ItemAcl() | 推奨 | アイテムのインデックス登録時に入力します。 |
カスタムの類義語 | _dictionaryEntry スキーマ | 推奨 | インデックス登録時に、データソース レベルで定義するか、別のデータソースとして定義します。 |
quality フィールド | SearchQualityMetadata | 省略可 | 意味の似たアイテムを品質に基づいてランク付けするには、インデックス登録時に品質を設定します。データソース内のすべてのアイテムに対してこのフィールドを設定すると、その効果が無効になります。 |
アイテムレベルのインタラクション データ | interaction | オプション | データソースでユーザーのインタラクションへのアクセスが記録および提供される場合は、インデックス登録時に各アイテムのインタラクションを入力します。 |
整数型 / 列挙型プロパティ | OrderedRanking | オプション | アイテムの順序が重要である場合、インデックス登録時に整数型および列挙型プロパティのランキング付けを指定します。 |
検索アプリケーションの設定 | |||
Personalization=false | ScoringConfig または Cloud Search 管理 UI を使用する | 推奨 | 検索アプリケーションの作成時または更新時に設定します。「パーソナライズによってランキングに影響を与える」セクションで説明したように、正しいオーナー情報を指定してください。 |
SourceImportance フィールド | SourceCrowdingConfig | 省略可 | 特定のデータソースからの結果にバイアスをかけるには、この項目を設定します。 |
numResults フィールド | SourceCrowdingConfig | 省略可 | 結果の多様性を管理するには、この項目を設定します。 |
次の手順
必要に応じて次の手順を行います。
詳しくは、 定義する
_dictionaryEntry
スキーマ ビジネスで一般的に使用される用語の同義語です。_dictionaryEntry
詳しくは、このモジュールの 類義語を定義する。