Method: query.search

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

注: この API を実行するには、標準のエンドユーザー アカウントが必要です。サービス アカウントは Query 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 です。

レスポンスの本文

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

Search API レスポンス。

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。リクエストされたすべてのデータソースの結果の合計数。事前定義されたソースがクエリされるデータソースのセットに含まれている場合は省略されます。次のような状況では、結果の数が正確ではなく、推定値として返されることがあります。

  • クエリのフレーズに 2 つ以上のキーワードが含まれている場合(「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 に設定します。NL 解釈は、事前定義されたデータソースにのみ適用されます。

enableVerbatimMode

boolean

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

disableSupplementalResults

boolean

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

QueryInterpretation

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

string

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

interpretationType

enum (QueryInterpretation.InterpretationType)

reason

enum (QueryInterpretation.Reason)

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

QueryInterpretation.InterpretationType

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

QueryInterpretation.Reason

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

SearchResult

ドキュメントのインデックス登録情報を含む結果。

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

スニペットの一致範囲([開始、終了])。

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)

検索結果に表示されるこのドキュメントまたはオブジェクトの作成日時。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

updateTime

string (Timestamp format)

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

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

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 表現
{
  "person": {
    object (Person)
  }
}
フィールド
person

object (Person)

人物を表します。

SpellResult

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

string

クエリのスペル候補。

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)
  },
  "value": {
    object (Value)
  }
}
フィールド
count

integer

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

percentage

integer

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

filter

object (Filter)

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

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)

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