SearchResponse

Search API 回應。NEXT id:17

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)

重複的 Facet 結果。

hasMoreResults

boolean

是否有更多與查詢相符的搜尋結果。

debugInfo

object (ResponseDebugInfo)

回應的偵錯資訊。

errorInfo

object (ErrorInfo)

回應的錯誤資訊。

resultCounts

object (ResultCounts)

展開的結果計數資訊。

聯集欄位 result_count。所有要求的資料來源的結果總數。如果查詢的資料來源組合中包含預先定義的來源,則會省略。在下列情況下,系統可能會傳回預估結果計數,而非精確結果計數:

  • 查詢詞組中含有超過 2 個字詞,例如用引號括住的「結果數量完全相符」。

  • 當要評估的不重複搜尋結果 ACL 數量過多,無法在合理的延遲時間內計算。

在極少數情況下,系統無法搜尋所有文件,請重新執行查詢。result_count 只能是下列其中一項:

resultCountEstimate

string (int64 format)

這項查詢的預估結果數量。

resultCountExact

string (int64 format)

這項查詢的確切結果數量。

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 原始查詢的結果會與其他結果混合。下方的「reason」欄位會填入將這些其他結果與原始查詢結果混合的原因。
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

搜尋結果的網址。網址包含 Google 重新導向至實際項目的連結。這個網址已簽署,因此不應變更。

snippet

object (Snippet)

這項結果可用的所有片段 (摘要) 串連。

metadata

object (Metadata)

搜尋結果的中繼資料。

clusteredResults[]

object (SearchResult)

如果來源是叢集,請提供叢集結果清單。系統只會產生一個層級的叢集結果。如果目前的來源未啟用叢集功能,這個欄位會留空。

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

結果的縮圖網址。

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

搜尋結果的顯示欄位

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)

經過清理的 HTML,代表可在 UI 中使用的拼字修正查詢。這通常會包含語言特定標記,用於標記要進行拼字檢查的查詢部分。

SpellResult.SuggestionType

系統為查詢觸發的建議類型。

列舉
SUGGESTION_TYPE_UNSPECIFIED 預設的拼字檢查類型
NON_EMPTY_RESULTS_SPELL_SUGGESTION 拼字建議未變更任何結果。系統仍會顯示原始查詢的結果 (結果數不為零),並提供可能會產生結果的拼字建議。
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)

回應中值的 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)

這個來源的確切結果數。