Method: query.search

Cloud Search Query API は、ユーザーのクエリから最も関連性の高い結果を返す検索メソッドを提供します。結果は、Gmail や Google ドライブなどの Google Workspace アプリから取得することも、サードパーティからインデックス登録したデータから取得することもできます。

注: この API を実行するには、標準のエンドユーザー アカウントが必要です。サービス アカウントはクエリ API リクエストを直接実行できません。サービス アカウントを使用してクエリを実行するには、Google Workspace ドメイン全体の権限の委任を設定します。

HTTP リクエスト

POST https://cloudsearch.googleapis.com/v1/query/search

この URL は gRPC Transcoding 構文を使用します。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

JSON 表現
{
  "requestOptions": {
    object (RequestOptions)
  },
  "query": string,
  "pageSize": integer,
  "start": integer,
  "dataSourceRestrictions": [
    {
      object (DataSourceRestriction)
    }
  ],
  "facetOptions": [
    {
      object (FacetOptions)
    }
  ],
  "sortOptions": {
    object (SortOptions)
  },
  "queryInterpretationOptions": {
    object (QueryInterpretationOptions)
  },
  "contextAttributes": [
    {
      object (ContextAttribute)
    }
  ]
}
フィールド
requestOptions

object (RequestOptions)

検索アプリケーションやユーザーのタイムゾーンなどのリクエスト オプション。

query

string

未加工のクエリ文字列。サポートされている検索演算子については、演算子を使用して検索を絞り込むをご覧ください。

pageSize

integer

1 ページで返される検索結果の最大件数。有効な値は 1 ~ 100 です。デフォルト値は 10 です。2,000 を超える結果がリクエストされた場合、最小値は 50 です。

start

integer

結果の開始インデックス。

dataSourceRestrictions[]

object (DataSourceRestriction)

クエリに使用するソース。指定しない場合、現在の検索アプリケーションのすべてのデータソースが使用されます。

facetOptions[]

object (FacetOptions)

sortOptions

object (SortOptions)

検索結果の並べ替えオプション

queryInterpretationOptions

object (QueryInterpretationOptions)

ユーザー クエリを解釈するためのオプション。

contextAttributes[]

object (ContextAttribute)

検索結果のランキング調整に使用されるリクエストのコンテキスト属性。要素の最大数は 10 です。

レスポンスの本文

検索 API のレスポンス。次の ID: 19

成功した場合、レスポンスの本文には次の構造のデータが含まれます。

JSON 表現
{
  "queryInterpretation": {
    object (QueryInterpretation)
  },
  "results": [
    {
      object (SearchResult)
    }
  ],
  "structuredResults": [
    {
      object (StructuredResult)
    }
  ],
  "spellResults": [
    {
      object (SpellResult)
    }
  ],
  "facetResults": [
    {
      object (FacetResult)
    }
  ],
  "hasMoreResults": boolean,
  "debugInfo": {
    object (ResponseDebugInfo)
  },
  "errorInfo": {
    object (ErrorInfo)
  },
  "resultCounts": {
    object (ResultCounts)
  },

  // Union field result_count can be only one of the following:
  "resultCountEstimate": string,
  "resultCountExact": string
  // End of list of possible types for union field result_count.
}
フィールド
queryInterpretation

object (QueryInterpretation)

ユーザークエリのクエリ解釈結果。クエリの解釈が無効になっている場合は空です。

results[]

object (SearchResult)

検索クエリの結果。

structuredResults[]

object (StructuredResult)

ユーザークエリの構造化された結果。これらの結果は pageSize にカウントされません。

spellResults[]

object (SpellResult)

クエリのスペル候補。

facetResults[]

object (FacetResult)

繰り返されるファセット結果。

hasMoreResults

boolean

クエリに一致する検索結果が他にもあるかどうか。

debugInfo

object (ResponseDebugInfo)

レスポンスに関するデバッグ情報。

errorInfo

object (ErrorInfo)

レスポンスに関するエラー情報。

resultCounts

object (ResultCounts)

展開された結果数の情報。

共用体フィールド result_count。リクエストされたすべてのデータソースの合計結果数。クエリされるデータソースのセットに事前定義されたソースが含まれている場合は省略されます。次のような場合、結果の件数は正確な値ではなく推定値として返されることがあります。

  • クエリのフレーズに 3 つ以上の単語が含まれている場合(「result count exact」など)。

  • 評価する一意の検索結果 ACL の数が多すぎて、妥当な遅延時間内で計算できない場合。

システムがすべてのドキュメントを検索できないまれなケースでは、クエリを再実行します。result_count は次のいずれかになります。

resultCountEstimate

string (int64 format)

このクエリの推定結果数。

resultCountExact

string (int64 format)

このクエリの正確な結果数。

認可スコープ

次の OAuth スコープのいずれかが必要です。

  • https://www.googleapis.com/auth/cloud_search.query
  • https://www.googleapis.com/auth/cloud_search

詳しくは、承認ガイドをご覧ください。

QueryInterpretationOptions

ユーザー クエリを解釈するオプション。

JSON 表現
{
  "disableNlInterpretation": boolean,
  "enableVerbatimMode": boolean,
  "disableSupplementalResults": boolean
}
フィールド
disableNlInterpretation

boolean

クエリの自然言語(NL)解釈を無効にするフラグ。デフォルトは false です。自然言語の解釈を無効にするには、true に設定します。自然言語解釈は、事前定義されたデータソースにのみ適用されます。

enableVerbatimMode

boolean

このフラグを有効にすると、クエリの自然言語(NL)解釈、補足結果の取得、カスタムを含む同義語の使用など、すべての内部最適化が無効になります。2 つのフラグのいずれかが true の場合、NL 解釈は無効になります。

disableSupplementalResults

boolean

このフラグを使用して、クエリの補足結果を無効にします。SearchApplication レベルで選択された補足結果の設定は、True に設定されている場合は優先されます。

QueryInterpretation

JSON 表現
{
  "interpretedQuery": string,
  "interpretationType": enum (QueryInterpretation.InterpretationType),
  "reason": enum (QueryInterpretation.Reason),
  "interpretedQueryActualResultCount": integer,
  "interpretedQueryEstimatedResultCount": string
}
フィールド
interpretedQuery

string

検索で使用されたクエリの解釈。たとえば、「john からのメール」のような自然言語のインテントを含むクエリは、「from:john source:mail」と解釈されます。理由が NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY の場合、このフィールドは入力されません。

interpretationType

enum (QueryInterpretation.InterpretationType)

reason

enum (QueryInterpretation.Reason)

クエリの解釈の理由。解釈タイプが NONE でない場合、このフィールドは UNSPECIFIED になりません。

interpretedQueryActualResultCount

integer

解釈されたクエリによって返された実際の結果の数。

interpretedQueryEstimatedResultCount

string (int64 format)

解釈されたクエリによって返される結果の推定数。

QueryInterpretation.InterpretationType

列挙型
NONE 自然言語の解釈も、クエリの広範なバージョンも、検索結果の取得には使用されません。
BLEND 元のクエリの結果は他の結果とブレンドされます。これらの他の結果を元のクエリの結果とブレンドする理由は、以下の「理由」フィールドに入力されます。
REPLACE 元のクエリの結果が置き換えられます。元のクエリの結果が置き換えられた理由は、以下の「理由」フィールドに表示されます。

QueryInterpretation.Reason

列挙型
UNSPECIFIED
QUERY_HAS_NATURAL_LANGUAGE_INTENT クエリの自然言語解釈を使用して検索結果を取得します。
NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY クエリとドキュメントの語句の類似性を使用して、ユーザーのクエリに対して十分な結果が見つからなかったため、追加の検索結果を取得するためにクエリを絞り込みます。この場合、解釈されたクエリは空になります。

SearchResult

ドキュメントのインデックス情報を含む結果。次の ID: 16

JSON 表現
{
  "title": string,
  "url": string,
  "snippet": {
    object (Snippet)
  },
  "metadata": {
    object (Metadata)
  },
  "clusteredResults": [
    {
      object (SearchResult)
    }
  ],
  "debugInfo": {
    object (ResultDebugInfo)
  }
}
フィールド
title

string

検索結果のタイトル。

url

string

検索結果の URL。URL に、実際のアイテムへの Google リダイレクトが含まれています。この URL は署名されているため、変更しないでください。

snippet

object (Snippet)

この結果で利用可能なすべてのスニペット(要約)の連結。

metadata

object (Metadata)

検索結果のメタデータ。

clusteredResults[]

object (SearchResult)

ソースがクラスタ化されている場合は、クラスタ化された結果のリストを指定します。クラスタ化された結果は 1 つのレベルのみになります。現在のソースでクラスタリングが有効になっていない場合、このフィールドは空になります。

debugInfo

object (ResultDebugInfo)

この検索結果に関するデバッグ情報。

スニペット

検索結果のスニペット。検索結果のページのコンテンツを要約したものです。

JSON 表現
{
  "snippet": string,
  "matchRanges": [
    {
      object (MatchRange)
    }
  ]
}
フィールド
snippet

string

ドキュメントのスニペット。エスケープされた HTML 文字が含まれている場合があります。レンダリングする前にエスケープを解除する必要があります。

matchRanges[]

object (MatchRange)

スニペット内の一致した範囲。

MatchRange

スニペットの一致した範囲 [start, end)。

JSON 表現
{
  "start": integer,
  "end": integer
}
フィールド
start

integer

スニペット内の一致の開始位置。

end

integer

スニペット内の一致の終了位置。

メタデータ

一致した検索結果のメタデータ。

JSON 表現
{
  "source": {
    object (Source)
  },
  "mimeType": string,
  "thumbnailUrl": string,
  "owner": {
    object (Person)
  },
  "createTime": string,
  "updateTime": string,
  "fields": [
    {
      object (NamedProperty)
    }
  ],
  "displayOptions": {
    object (ResultDisplayMetadata)
  },
  "objectType": string
}
フィールド
source

object (Source)

結果のソースの名前(Gmail など)。

mimeType

string

検索結果の MIME タイプ。

thumbnailUrl

string

結果のサムネイル URL。

owner

object (Person)

検索結果のドキュメントまたはオブジェクトのオーナー(通常は作成者)。

createTime

string (Timestamp format)

検索結果のこのドキュメントまたはオブジェクトの作成時間。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

updateTime

string (Timestamp format)

検索結果のオブジェクトの最終更新日。アイテムで設定されていない場合、ここで返される値は空になります。updateTime が鮮度の計算に使用され、設定されていない場合、この値はデフォルトで現在時刻から 2 年になります。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

fields[]

object (NamedProperty)

構造化データのインデックス付きフィールド。汎用の名前付きプロパティとして返されます。

displayOptions

object (ResultDisplayMetadata)

構造化データ検索結果の表示方法を指定するオプション。

objectType

string

検索結果のオブジェクト タイプ。

ResultDisplayMetadata

JSON 表現
{
  "objectTypeLabel": string,
  "metalines": [
    {
      object (ResultDisplayMetadata.ResultDisplayLine)
    }
  ]
}
フィールド
objectTypeLabel

string

オブジェクトの表示ラベル。

metalines[]

object (ResultDisplayMetadata.ResultDisplayLine)

結果とともに表示されるメタラインのコンテンツ。

ResultDisplayMetadata.ResultDisplayLine

表示される行を構成するフィールドのコレクション

JSON 表現
{
  "fields": [
    {
      object (ResultDisplayMetadata.ResultDisplayField)
    }
  ]
}
フィールド
fields[]

object (ResultDisplayMetadata.ResultDisplayField)

ResultDisplayMetadata.ResultDisplayField

query.search 結果の表示フィールド

JSON 表現
{
  "label": string,
  "operatorName": string,
  "property": {
    object (NamedProperty)
  }
}
フィールド
label

string

プロパティの表示ラベル。

operatorName

string

プロパティの演算子名。

property

object (NamedProperty)

プロパティの名前と値のペア。

ResultDebugInfo

結果に関するデバッグ情報。

JSON 表現
{
  "formattedDebugInfo": string
}
フィールド
formattedDebugInfo

string

表示用にフォーマットされた一般的なデバッグ情報。

StructuredResult

検索リクエストの一部として返される構造化された結果。

JSON 表現
{

  // Union field structured_result can be only one of the following:
  "person": {
    object (Person)
  }
  // End of list of possible types for union field structured_result.
}
フィールド

共用体フィールド structured_result

structured_result は次のいずれかになります。

person

object (Person)

人物の表現

SpellResult

JSON 表現
{
  "suggestedQuery": string,
  "suggestionType": enum (SpellResult.SuggestionType),
  "suggestedQueryHtml": {
    object (SafeHtmlProto)
  }
}
フィールド
suggestedQuery

string

クエリのスペル候補。

suggestionType

enum (SpellResult.SuggestionType)

現在のクエリでトリガーされた候補。

suggestedQueryHtml

object (SafeHtmlProto)

UI で使用できる、スペル修正されたクエリを表すサニタイズされた HTML。通常、これには言語固有のタグが含まれており、スペルチェックされたクエリの部分をマークアップします。

SpellResult.SuggestionType

クエリに対してトリガーされた候補のタイプ。

列挙型
SUGGESTION_TYPE_UNSPECIFIED デフォルトのスペルチェックの種類
NON_EMPTY_RESULTS_SPELL_SUGGESTION 結果のないスペル候補が変更されました。元のクエリ(結果が 0 ではない)の検索結果は引き続き表示され、結果が得られるスペル候補が表示されます。
ZERO_RESULTS_FULL_PAGE_REPLACEMENT 元のクエリで結果が返されなかった場合にスペル候補がトリガーされる。元のクエリで結果が得られず、スペル候補で結果が得られた場合は、スペル修正されたクエリの結果をトリガーします。

SafeHtmlProto

重要: 信頼できないソースからのこのメッセージを受け入れるのは安全ではありません。攻撃者が型の安全契約を満たさないシリアル化されたメッセージを簡単に偽造できるためです。たとえば、攻撃者が制御するスクリプトが含まれている可能性があります。SafeHtmlProto を受け取るシステムは、SafeHtmlProto のプロデューサーを暗黙的に信頼します。そのため、一般的に RPC レスポンスでこのメッセージを返すのは安全ですが、RPC リクエストで受け入れるのは安全ではありません。

JSON 表現
{
  "privateDoNotAccessOrElseSafeHtmlWrappedValue": string
}
フィールド
privateDoNotAccessOrElseSafeHtmlWrappedValue

string

重要: このフィールドは非公開であるため、テストからでも設定や読み取りを行わないでください。このメッセージの作成または読み取りに使用するプログラミング言語パッケージについては、.proto ファイルの先頭にあるドキュメントをご覧ください。

FacetResult

ソース固有のファセット レスポンス

JSON 表現
{
  "sourceName": string,
  "objectType": string,
  "operatorName": string,
  "buckets": [
    {
      object (FacetBucket)
    }
  ]
}
フィールド
sourceName

string

ファセット結果が返されるソース名。空にはなりません。

objectType

string

ファセット結果が返されるオブジェクト タイプ。これは空でもかまいません。

operatorName

string

ファセット処理に選択された演算子の名前。@see cloudsearch.SchemaPropertyOptions

buckets[]

object (FacetBucket)

対応するフィルタを含む結果が少なくとも 1 つ含まれているレスポンス内の値の FacetBuckets。

FacetBucket

ファセット内のバケットは、オペレーションの基本単位です。バケットには、バケット化されたフィールドの型に応じて、単一の値または連続した値の範囲を含めることができます。FacetBucket は現在、レスポンス オブジェクトを返すためだけに使用されています。

JSON 表現
{
  "count": integer,
  "percentage": integer,
  "filter": {
    object (Filter)
  },

  // Union field bucket_value can be only one of the following:
  "value": {
    object (Value)
  }
  // End of list of possible types for union field bucket_value.
}
フィールド
count

integer

バケット値に一致する結果の数。カウントの精度が確保されている場合にのみ、検索のカウントが返されます。Cloud Search は、どのクエリに対してもファセット数を保証しません。同じクエリでも、ファセット数が断続的にしか表示されないことがあります。ファセット数の存在に依存関係を構築しないでください。代わりに、常に返されるファセット数の割合を使用してください。

percentage

integer

バケット値に一致する結果の割合。戻り値は (0 ~ 100] の範囲で、小数部分がある場合は整数に切り捨てられます。値が明示的に返されない場合、0 に丸められるパーセンテージ値を表します。割合はすべての検索で返されますが、推定値です。割合は常に返されるため、カウントではなく割合をレンダリングする必要があります。

filter

object (Filter)

対応するバケットが選択されている場合に検索リクエストで渡されるフィルタ。

共用体フィールド bucket_value。ファセット化されたバケット bucket_value の範囲または値は、次のいずれかになります。
value

object (Value)

ResponseDebugInfo

レスポンスに関するデバッグ情報。

JSON 表現
{
  "formattedDebugInfo": string
}
フィールド
formattedDebugInfo

string

表示用にフォーマットされた一般的なデバッグ情報。

ErrorInfo

レスポンスに関するエラー情報。

JSON 表現
{
  "errorMessages": [
    {
      object (ErrorMessage)
    }
  ]
}
フィールド
errorMessages[]

object (ErrorMessage)

ErrorMessage

ソース レスポンスごとのエラー メッセージ。

JSON 表現
{
  "source": {
    object (Source)
  },
  "errorMessage": string
}
フィールド
source

object (Source)

errorMessage

string

ResultCounts

結果の件数情報

JSON 表現
{
  "sourceResultCounts": [
    {
      object (SourceResultCount)
    }
  ]
}
フィールド
sourceResultCounts[]

object (SourceResultCount)

結果のある各ソースの結果数情報。

SourceResultCount

ソースごとの結果数情報。

JSON 表現
{
  "source": {
    object (Source)
  },
  "hasMoreResults": boolean,

  // Union field result_count can be only one of the following:
  "resultCountEstimate": string,
  "resultCountExact": string
  // End of list of possible types for union field result_count.
}
フィールド
source

object (Source)

結果のカウント情報が関連付けられているソース。

hasMoreResults

boolean

このソースの検索結果がさらにあるかどうか。

共用体フィールド result_count

result_count は次のいずれかになります。

resultCountEstimate

string (int64 format)

このソースの推定結果数。

resultCountExact

string (int64 format)

このソースの正確な結果数。