Google Cloud Search には、検索結果に影響するデフォルトの拡張、解釈、最適化がいくつかあります。検索クエリから予期しない結果が表示された場合は、Cloud Search サポートに問い合わせる前に、このガイドを参照してください。
デフォルトの展開
ユーザーが [Joe’s PDFs] などの文字列を使用して検索している場合、返された結果の一部に「PDFs」ではなく「documents」などのハイライト表示された単語が含まれているとします。検索クエリに含まれていない単語がハイライト表示されているのに、検索結果に表示されるのは何故ですか?
デフォルトでは、Google Cloud Search は Google ウェブ検索と同様に、クエリ内の正確な単語のみを検索しません。代わりに、Cloud Search はクエリを拡張して、類義語と語幹を含めます(独自の類義語を実装していない場合でも同様です)。この拡張は、クエリのアイデアと意図に広く一致するドキュメントを取得するために行われます。この幅広いドキュメントセットが選択されると、ランキング アルゴリズムが機能し、最適な一致が結果セットの上部に配置されます。
ユーザーが [Joe’s PDFs] を検索すると、Cloud Search は次のような追加の有効な単語を提案しました。
- [Joe’s] の場合、Cloud Search は「joe」(語幹拡張)や「joes」(句読点に基づく類義語)にも一致する可能性があります。
- [PDFs] の場合、Cloud Search は「documents」(類義語の拡張)や「pdf」(語幹の拡張)にも一致する可能性があります。
デフォルトでは、類義語は必ずしも双方向ではありません。たとえば、ユーザーが「フィッシング」という語句を検索すると、Cloud Search は「phish」を類義語拡張として照合する場合があります。ただし、ユーザーが「phish」という語句を検索した場合、Google は「phishing」を展開として照合しない可能性があります。
ハイフンありとハイフンなしの単語の拡張
ユーザーがハイフンで区切られた単語とハイフンで区切られていない同義語([walk-in closet] と [walk in closet] など)を検索した場合、Cloud Search ではこれらのクエリが異なる方法で処理されます。
また、ハイフン付きの単語とアンダースコア付きの単語([walk-in] や [walk_in] など)には、異なる最適化が使用されます。
デフォルトの拡張を補正する
デフォルトでは、拡張は保証されません。類義語またはドメイン固有の類義語拡張の双方向性を保証するには、独自のドメイン固有の類義語セットを作成します。類義語の実装の詳細については、類義語を定義するをご覧ください。
デフォルトの解釈
Cloud Search には、特定のデータソース用にアップロードされたスキーマに従って、クエリで使用されるオブジェクト、プロパティ、フィールド値を解釈する自然言語解釈も用意されています。この自然言語解釈の詳細については、最適なクエリ解釈のためのスキーマを構造するをご覧ください。
自然言語の解釈を無効にする
特定のクエリの自然言語解釈を無効にするには、検索リクエストで QueryInterpretationOptions.disableNlInterpretation
を true
に設定します。
デフォルトの最適化
Cloud Search では、次のデフォルトの最適化も提供されます。
スペルチェックによって提供された結果を組み合わせる。たとえば、クエリ文字列が [corpoate benefits] の場合、Cloud Search は「corpoate」と「corporate」の正しいスペルを照合します。
検索結果が 0 件または少数件のクエリの場合、Cloud Search は結果の照合時に、直接の類義語よりも広範な関連語句のセットを許容します。詳細については、補足結果を処理するをご覧ください。
ドキュメントとクエリの正規化
正規化とは、クエリの実行前または実行後に特定の単語やフレーズを標準化することです。クエリに対するレスポンスの一貫性を高めるには、ドキュメント(インデックス作成前またはインデックス作成中)とクエリ(ユーザーがクエリを実行した後)を次の方法で正規化することを検討してください。
ドキュメントを正規化するには:
- リポジトリ内のドキュメントで使用される重要な単語の正規のスペルを選択します。
- ソース リポジトリのドキュメントで、またはコンテンツのインデックス作成時に、正しいスペルに修正します。
クエリを正規化するには:
- ユーザーのクエリを Cloud Search に送信する前にインターセプトします。
- ユーザーのクエリ内の単語を書き換えて、インデックスに登録されたデータソースで最も一般的なスペルと一致させます。
- クエリを Cloud Search に送信します。
すべてのクエリで拡張、解釈、最適化を無効にする
特定のクエリの拡張、解釈、最適化を無効にするには、検索リクエストで QueryInterpretationOptions.enableVerbatim Mode
を true
に設定します。