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

  • 1 つのクエリに 2 つ以上の単語が含まれるとき(「結果の件数完全一致」など)引用符で囲みます。

  • 評価する一意の検索結果の 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

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

QueryInterpretation

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

string

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

interpretationType

enum (QueryInterpretation.InterpretationType)

reason

enum (QueryInterpretation.Reason)

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

QueryInterpretation.InterpretationType

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

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

スニペットの一致範囲([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)

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

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)

結果とともに表示される metalines コンテンツ。

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

ファセットに選択された演算子の名前。@cloudsearch.SchemaPropertyOptions をご覧ください

buckets[]

object (FacetBucket)

FacetBuckets。対応するフィルタで結果が 1 つ以上含まれているレスポンスの値の FacetBuckets。

FacetBucket

ファセット内のバケットは操作の基本単位です。バケットは、バケット化するフィールドのタイプに応じて、単一の値または連続した範囲の値で構成されます。FacetBucket は現在、レスポンス オブジェクトを返すためだけに使用されています。

JSON 表現
{
  "count": integer,
  "percentage": integer,
  "filter": {
    object (Filter)
  },
  "value": {
    object (Value)
  }
}
フィールド
count

integer

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

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)

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