Cloud Search 查詢解讀功能會自動將使用者查詢中的運算子和篩選器,轉換為以運算子為基礎的結構化查詢。這項功能會使用結構定義中定義的運算子和已建立索引的文件,推斷查詢意圖。使用者只需輸入少量關鍵字,就能獲得精確的搜尋結果。
結果的呈現方式取決於信賴度。如果查詢字串持續出現在特定結構定義欄位中 (例如 actors 欄位中的「Tom Hanks」),信賴度就會提高。如果字串出現在一般散文中,信賴度就會降低。如果信心度高,系統只會顯示解讀結果;如果信心度較低,系統會將解讀結果與標準關鍵字結果混合顯示。
查詢解讀範例
假設資料庫包含電影資訊。圖 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"
}
}
}
]
}]
}
這些設定可啟用以下解讀方式:
- 「movies released this year」(今年上映的電影) ->
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」)。
- 結果一律會與依關聯性排序的結果混合顯示。