Cloud Search 查詢解讀功能會自動將使用者查詢中的運算子和篩選器,轉換為以運算子為基礎的結構化查詢。這項功能會使用結構定義中定義的運算子和已建立索引的文件,推斷查詢意圖。使用者只需輸入少量關鍵字,就能獲得精確的搜尋結果。
結果的呈現方式取決於信賴度。如果查詢字串持續出現在特定結構化資料欄位 (例如 「湯姆漢克斯」在 actors 欄位中)。如果字串出現在一般散文中,信賴度就會降低。如果信心指數較高,系統只會顯示解讀結果;如果信心指數較低,系統會將解讀結果與標準關鍵字結果混合顯示。
查詢解讀範例
假設資料庫包含電影資訊。圖 1 顯示範例搜尋查詢及其解讀結果。

這個範例的查詢解讀結果如下:
- 根據結構定義判斷頂層物件為
objecttype:movies。 - 掃描文件,找出「動作」發生的位置。如果主要出現在
genre欄位中,則可提高該欄位為屬性值的信賴度。
解讀結果如下:
actor:"tom hanks" genre:action objecttype:movies
系統會自動為所有使用者解讀查詢,但您可以按照下列章節所述的結構定義結構定義,進一步提升解讀效果。
為查詢解讀作業設定結構定義
最佳化結構定義可確保您能從查詢解讀功能獲益。
啟用顯示名稱解讀功能
查詢解讀功能會使用 objectDefinitions 和 propertyDefinitions 解讀查詢。使用 displayLabel 建立屬性的直覺式顯示名稱、objectDisplayLabel 建立物件的直覺式顯示名稱,以及 operatorName 建立運算子的直覺式顯示名稱。
以下範例顯示電影物件的直覺式顯示名稱:
{
"objectDefinitions": [{
"name": "movie",
"options": {
"displayOptions": { "objectDisplayLabel": "Films" }
},
"propertyDefinitions": [{
"name": "genre",
"isReturnable": true,
"textPropertyOptions": {
"operatorOptions": { "operatorName": "genre" }
},
"displayOptions": { "displayLabel": "Category" }
}]
}]
}
這些顯示名稱可解讀為:
- 「動作片」->
genre:action object:movies - 「movies with genre action or thriller」(類型為動作或驚悚的電影) ->
objecttype:movies genre:(action OR thriller) - 「comedy category movies」(喜劇類電影) ->
genre:comedy objecttype:movies
啟用日期、數字和排序解讀結果
在 IntegerOperatorOptions 中,為所有日期和數值屬性定義 lessThanOperatorName 和 greaterThanOperatorName。如要啟用排序功能,請設定 isSortable。
這個範例會啟用下列選項:
{
"objectDefinitions": [{
"propertyDefinitions": [
{
"name": "runtime",
"isSortable": true,
"integerPropertyOptions": {
"operatorOptions": {
"operatorName": "runtime",
"lessThanOperatorName": "runtimelessthan",
"greaterThanOperatorName": "runtimegreaterthan"
}
}
},
{
"name": "releasedate",
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "releasedate",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
}
]
}]
}
這些設定可啟用以下解讀方式:
- 「今年上映的電影」->
objecttype:movies releasedafter:2019-1-1 releasedbefore:2019-12-31 - 「movies with runtime less than 90」->
objecttype:movies runtimelessthan:90
啟用預約口譯員服務
使用 type、before、after 和 objecttype 等內建運算子:
- 在
ItemMetadata中填入updateTime,即可使用before和after。 - 在
ItemMetadata中填入mimeType,即可自動偵測。舉例來說,「動作影片」會列出 MIME 類型為影片的文件。
查詢解讀限制
- 僅適用於下列資料來源 ACL:
- 網域公開。
- 資料來源公開。
- 大多數文件共用相同的繼承 ACL。
- 共用運算子名稱 (例如 「
priority」和「severity」都使用 0 到 3) 信心度較低。 - 根據預設,除非使用
exactMatchWithOperator,否則解譯會將欄位值設為小寫。 - 系統不支援
source運算子。 - 組合運算子和任意文字字詞 (例如 「p0 cases severity:s0」) 不會解讀。
- 結果一律會與依關聯性排序的結果混合顯示。