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」(句読点に基づく同義語)にも一致します。
- [PDF] の場合、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 には、次のようなデフォルトの最適化も用意されています。
スペル修正後の結果を統合します。たとえば、クエリ文字列が [corpoateBenefit] の場合、Cloud Search では「corpoate」と「corporate」の正しいスペルが照合されます。
結果がまったくないかほとんどないクエリの場合、Cloud Search では、結果を照合する際に、直接的な同義語よりも制限の緩い関連用語のセットを使用します。詳しくは、補足結果を処理するをご覧ください。
ドキュメントとクエリの正規化
正規化とは、クエリの作成前または実行後に、特定の単語やフレーズを標準化することです。クエリに対するレスポンスの一貫性を高めるために、ドキュメント(インデックス登録の前または最中)とクエリ(ユーザーがクエリを行った後で)を次の方法で正規化することを検討してください。
ドキュメントを正規化するには:
- リポジトリ内のドキュメントで使用される重要な単語の正規スペルを選択します。
- ソース リポジトリのドキュメント内のスペルを修正するか、コンテンツをインデックスに登録する際に、正規のスペルと一致するようにします。
クエリを正規化するには:
- ユーザークエリを Cloud Search に送信する前にインターセプトします。
- ユーザークエリの単語を、インデックス登録されたデータソースで最も一般的なスペルと一致するように書き換えます。
- クエリを Cloud Search に送信します。
すべてのクエリの展開、解釈、最適化を無効にする
特定のクエリに対する展開、解釈、最適化を無効にするには、検索リクエストで QueryInterpretationOptions.enableVerbatim Mode
を true
に設定します。