Google Cloud Search には、検索結果に影響するデフォルトの拡張、解釈、最適化がいくつかあります。検索クエリから予期しない結果が表示された場合は、Cloud Search サポートにお問い合わせいただく前に、このガイドをご覧ください。
デフォルトの展開
ユーザーが [Joe’s PDFs] などの文字列を使用して検索しているときに、返された結果の一部に「PDF」ではなく「ドキュメント」などの単語がハイライト表示されているとします。検索クエリに含まれていない単語がハイライト表示された結果が表示されるのはなぜですか?
デフォルトでは、Google Cloud Search は Google ウェブ検索と同様に、クエリ内の単語と完全に一致する単語だけでなく、Cloud Search では、クエリが拡張され、類義語と語幹が含まれます(独自の類義語を実装していない場合でも)。この拡張は、クエリのアイデアと意図に広く一致するドキュメントを取得するために行われます。この幅広いドキュメントのセットが選択されると、ランキング アルゴリズムが最適な一致結果を結果セットの上位に配置します。
ユーザーが [Joe’s PDFs] を検索したとき、Cloud Search は次の単語を許容可能な追加の単語として提供しました。
- [Joe’s] の場合、Cloud Search は「joe」(語幹の拡張)や「joes」(句読点に基づく同義語)にも一致する可能性があります。
- [PDFs] の場合、Cloud Search は「documents」(同義語の拡張)や「pdf」(語幹の拡張)にも一致する可能性があります。
デフォルトでは、類義語は必ずしも双方向ではありません。たとえば、ユーザーが「フィッシング」という語句を検索した場合、Cloud Search は「フィッシュ」を同義語の拡張として一致させることがあります。ただし、ユーザーが「フィッシュ」という語句を検索した場合、Google は「フィッシング」を拡張一致として照合しない可能性があります。
ハイフン付きの単語とハイフンなしの単語の拡張
ユーザーがハイフン付きの単語とハイフンなしの同義語([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
に設定します。