「搜尋品質」是指使用者查詢後,在排名和喚回度方面的搜尋結果品質。
「排序」是指項目的順序,「喚回度」則是指擷取的相關項目數量。「項目」 (也稱為文件) 是 Google Cloud Search 可建立索引的任何數位內容。項目類型包括 Microsoft Office 文件、PDF 檔案、資料庫中的資料列、專屬網址等。項目包含:
- 結構化中繼資料
- 可建立索引的內容
- 存取控制清單 (ACL)
Cloud Search 會使用多種信號來擷取搜尋查詢結果並進行排名 (也就是搜尋查詢產生的項目)。您可以透過結構定義中的設定、項目內容和中繼資料 (建立索引期間) 和搜尋應用程式的設定來影響 Cloud Search 的信號。本文件旨在協助您修改這些信號影響者來改善搜尋品質。
如需建議和選用設定的摘要,請參閱建議和選用搜尋品質設定的摘要。
影響主題性分數
主題是指搜尋結果與原始查詢字詞的關聯性。項目的主題是根據下列條件計算得出:
- 每個查詢字詞的重要性。
- 命中的次數 (某個查詢字詞出現在項目的內容或中繼資料中的次數)。
- 符合查詢字詞及其變體的類型,具有在 Cloud Search 中編入索引的項目。
如要影響文字屬性的主題性分數,請在結構定義中定義文字屬性的 RetrievalImportance
。相較於 RetrievalImportance
較低的房源,比對符合 RetrievalImportance
的屬性,分數會較高。
舉例來說,假設您有一個資料來源具有下列特性:
- 這個資料來源用於儲存軟體錯誤記錄。
- 每個錯誤都有名稱、說明和優先順序。
大部分使用者會使用錯誤名稱查詢這個資料來源,因此您可以在結構定義中將名稱上的 RetrievalImportance
設為 HIGHEST
。
反之,大多數使用者都無法使用錯誤說明查詢這個資料來源,因此請將說明上的 RetrievalImportance
設為 DEFAULT
。以下是含有 RetrievalImportance
設定的結構定義範例。
{
"objectDefinitions": [
{
"name": "issues",
"propertyDefinitions": [
{
"name": "summary",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGHEST
}
}
},
{
"name": "description",
"textPropertyOptions": {
"retrievalImportance": {
"importance": DEFAULT
}
}
},
{
"name": "label",
"isRepeatable": true,
"textPropertyOptions": {
"retrievalImportance": {
"importance": DEFAULT
}
}
},
{
"name": "comments",
"textPropertyOptions": {
"retrievalImportance": {
"importance": DEFAULT
}
}
},
{
"name": "project",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGH
}
}
},
{
"name": "duedate",
"datePropertyOptions": {
}
},
...
]
}
]
}
就 HTML 文件而言,系統會使用 <title>
和 <h1>
等標記,以及字型大小和粗體等格式設定設定,判斷各種字詞的重要性。如果 ContentFormat
為 TEXT
,ItemContent
具有 DEFAULT
的擷取重要性,如為 HTML,則擷取的擷取重要性取決於 HTML 屬性。
影響即時性
「更新間隔」會測量項目最近的修改時間,並由 ItemMetadata
中的 createTime
和 updateTime
屬性決定。較舊的項目會在搜尋結果中的排名降低。
您可以調整結構定義中 FreshnessOptions
的 freshnessProperty
和 freshnessDuration
,藉此影響物件更新間隔的方式。
freshnessProperty
可讓您使用日期或時間戳記屬性計算更新間隔,而非使用預設的 updateTime
。
在上述軟體錯誤追蹤系統範例中,截止日可做為 freshnessProperty
使用,使到期日最接近目前日期的項目視為「較難」並可提高排名。以下是含有 freshnessProperty
設定的範例結構定義:
{
"objectDefinitions": [
{
"name": "issues",
"options": {
"freshnessOptions": {
"freshnessProperty": "duedate"
}
},
"propertyDefinitions": [
{
"name": "summary",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGHEST
}
}
},
{
"name": "duedate",
"datePropertyOptions": {
}
},
...
]
}
]
}
使用 freshnessDuration
識別商品的過舊情況。例如,某個資料來源可能未定期建立索引,或者您不希望更新頻率影響排名。您可以為 freshnessDuration
指定高價值,藉此達成這個目標。
假設您有一個內含員工設定檔資訊的資料來源。在這種情況下,您可能需要較高的 freshnessDuration
,因為員工資訊的變更通常與員工排名無關。以下是含有 freshnessDuration
設定的範例結構定義:
{
"objectDefinitions": [
{
"name": "people",
"options": {
"freshnessOptions": {
"freshnessDuration": "315360000s", # 100 years
}
},
}
]
}
您也可以將 freshnessDuration
設為極小的值,表示內容變動頻繁的資料來源 (例如包含新聞報導的資料來源)。在這個情境中,最近建立或修改的文件最相關的文件。以下是含有快速變更內容的資料來源範例,其中含有 freshnessDuration
設定的範例結構定義:
{
"objectDefinitions": [
{
"name": "news",
"options": {
"freshnessOptions": {
"freshnessDuration": "259200s", # 3 days
}
},
}
]
}
影響品質
「品質」是衡量項目準確度和實用性的衡量標準,一個資料來源可包含多個語意類似的文件,每份文件的品質都不同。您可以使用 SearchQualityMetadata
指定介於 0 至 1 之間的品質值。相較於值較低的項目,較高的項目排名會提高。只有在需要對 Cloud Search 提供的資訊外,影響或提高項目的品質時,才需要使用這項設定。
舉例來說,假設您的資料來源含有員工福利文件,您可以使用 SearchQualityMetadata
提高人力資源員工所編寫文件的排名,提高其他員工所編寫文件的排名。
以下是含有錯誤追蹤系統中問題的 SearchQualityMetadata
設定範例結構定義:
{
"name": "datasources/.../items/issue1",
"acl": {
...
},
"metadata": {
"title": "Issue 1"
"objectType": "issues"
},
...
}
{
"name": "datasources/.../items/issue2",
"acl": {
...
},
"metadata": {
"title": "Issue 2"
"objectType": "issues"
"searchQualityMetadata": {
"quality": 0.5
}
},
...
}
{
"name": "datasources/.../items/issue3",
"acl": {
...
},
"metadata": {
"title": "Issue 3"
"objectType": "issues"
"searchQualityMetadata": {
"quality": 1
}
},
...
}
根據這個結構定義,當使用者搜尋「問題」這個搜尋字詞時,結構定義 (品質 1) 中的問題 3 排名會高於第 2 期 (品質為 .5) 和問題 1 (如未指定,預設品質為 0)。
使用欄位類型的影響
Cloud Search 可讓您根據列舉或整數屬性的值影響排名。可以為每個整數或列舉屬性指定 OrderedRanking
。這項設定包含下列值:
NO_ORDER
(預設):屬性不會影響排名。ASCENDING
:相較於數值較低的項目,這個整數或列舉屬性的數值較高,會獲得排名提升。DESCENDING
:與值較高的項目相比,整數或列舉屬性值較低的項目將獲得排名提升。
舉例來說,假設錯誤追蹤系統中的每個錯誤都有列舉屬性,用來儲存錯誤的優先順序為 HIGH
(1)、MEDIUM
(2) 或 LOW
(3)。在這個情境中,相較於 LOW
優先順序錯誤,將 OrderedRanking
設為 DESCENDING
可讓排名提升至 HIGH
優先順序錯誤。以下是含有錯誤追蹤系統問題的 OrderedRanking
設定範例結構定義:
{
"objectDefinitions": [
{
"name": "issues",
"options": {
"freshnessOptions": {
"freshnessProperty": "duedate",
}
},
"propertyDefinitions": [
{
"name": "summary",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGHEST
}
}
},
{
"name": "duedate",
"datePropertyOptions": {
}
},
{
"name": "priority",
"enumPropertyOptions": {
"possibleValues": [
{
"stringValue": "HIGH",
"integerValue": 1
},
{
"stringValue": "MEDIUM",
"integerValue": 2
},
{
"stringValue": "LOW",
"integerValue": 3
}
],
"orderedRanking": DESCENDING,
}
},
...
]
}
]
}
錯誤追蹤系統也可能有一個名為 votes
的整數屬性,用於收集錯誤相對重要性的意見回饋。您可以使用 votes
屬性,提高投票數最多的錯誤重要性,藉此影響排名。在此情況下,您可以將 votes
屬性的 OrderedRanking
指定為 ASCENDING
,讓投票數最多的問題能夠獲得更高的排名。以下是包含錯誤追蹤系統問題的 OrderedRanking
設定範例結構定義:
{
"objectDefinitions": [
{
"name": "issues",
"propertyDefinitions": [
{
"name": "summary",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGHEST
}
}
},
{
"name": "description",
"textPropertyOptions": {
"retrievalImportance": {
"importance": DEFAULT
}
}
},
{
"name": "votes",
"integerPropertyOptions": {
"orderedRanking": ASCENDING,
"minimumValue": 0,
"maximumValue": 1000,
}
},
...
]
}
]
}
透過查詢擴展影響排名
「查詢擴充」是指使用同義詞和拼寫方式擴充查詢中的字詞,以擷取更優質的結果。
使用同義詞影響搜尋結果
Cloud Search 會利用從公開網路內容推斷的同義詞,擴充查詢字詞。您也可以定義自訂同義詞來擷取機構專用的術語,例如在機構或產業專用術語中使用的常見縮寫。
自訂同義詞可在資料來源內定義,或做為個別資料來源定義。根據預設,同義詞會套用至所有搜尋應用程式的所有資料來源。不過,您可以按照資料來源和搜尋應用程式,將同義詞分組。如要瞭解如何定義自訂同義詞,包括依搜尋應用程式分組,請參閱定義同義詞。
使用拼字影響搜尋結果
Cloud Search 會根據以 Google 搜尋公開資料建立的模型,提供拼字建議。如果 Cloud Search 在查詢內容偵測到拼字錯誤,就會在 SpellResult
中傳回建議的查詢。系統可能會將建議拼法顯示為使用者建議。例如,使用者可能會拼錯「employe」這個查詢字詞,進而收到「您是不是要位員工?」的建議。
Cloud Search 也會使用拼寫校正做為同義詞,協助擷取可能因為拼字錯誤而缺漏的文件。
透過搜尋應用程式設定影響排名
如 Google Cloud Search 簡介中所述,搜尋應用程式是一組設定,可與搜尋介面建立關聯時,提供搜尋的背景資訊。下列設定可讓您影響搜尋應用程式的排名:
- 評分設定
- 來源設定
以下兩個章節將說明這些設定如何有助於影響排名。
調整評分設定
您可以為每個搜尋應用程式指定 ScoringConfig,以控制在排名期間部分信號的應用。目前您可以停用更新和個人化功能。
如果已停用更新間隔,無論資料來源結構定義中指定的更新間隔選項為何,在搜尋應用程式中列出的所有資料來源都會停用更新間隔。同樣地,如果停用個人化功能,擁有者上升和互動的提升也不會影響排名。
如需設定此設定的逐步操作說明,請參閱「自訂 Cloud Search 中的搜尋體驗」。
調整來源設定
來源設定可讓您在搜尋應用程式中指定資料來源層級的設定。支援的設定如下:
- 來源重要性
- 聚集
設定來源重要性
「來源重要性」是指資料來源在搜尋應用程式內的相對重要性。您可以在 SourceScoringConfig
內的 SourceImportance
欄位中指定這項設定。相較於來源重要性為 DEFAULT
或 LOW
的資料來源,來源為 HIGH
的項目在排名上會提升。如果您認為使用者偏好特定資料來源的結果,可以使用這項設定影響排名。
舉例來說,假設您有一個產品支援入口網站,內含外部和內部疑難排解資料。在這種情況下,建議您設定搜尋應用程式,優先處理內部資料來源的結果。
如需設定此設定的逐步操作說明,請參閱「自訂 Cloud Search 中的搜尋體驗」。
設定擁擠程度
Crowding 是指可在搜尋應用程式中,從資料來源傳回的結果數量上限。您可以使用 SourceCrowdingConfig
中的 numResults
欄位控制這個值。這個值預設為 3,也就是說,如果我們顯示某資料來源的 3 筆結果,Cloud Search 就會開始顯示其他資料來源的結果。只有在所有資料來源都達到受限上限,或者其他資料來源沒有其他結果時,系統才會重新考慮第一個資料來源的項目。
這項設定有助於確保搜尋結果的多樣性,並防止單一資料來源脫穎而出。
如需設定此設定的逐步操作說明,請參閱「自訂 Cloud Search 中的搜尋體驗」。
透過個人化功能影響排名
「個人化」是指以存取結果的個別使用者方式呈現個人化搜尋結果的方式。您可以依據下列條件排列項目的優先順序,藉此影響排名:
- 項目擁有權
- 商品互動
- 使用者點擊次數
- 項目語言
以下三節將說明如何根據這些條件影響搜尋品質。
依據商品擁有權決定排名
「項目擁有權」是指執行搜尋查詢後,針對使用者擁有的項目提升排名。每個項目都有一個 ItemAcl
,其中包含 owners
欄位。如果執行查詢的使用者是項目的擁有者,則根據預設,該項目可獲得排名提升。也可以關閉搜尋應用程式中的個人化功能。
根據商品互動提升排名
「項目互動」是指讓搜尋查詢針對使用者互動 (查看、加註、編輯等) 的項目提升排名。
系統會自動為 Google Workspace 產品 (例如雲端硬碟和 Gmail) 取得項目互動信號。對於其他產品,您可以提供項目層級的互動資料,包括互動類型 (檢視、編輯)、互動時間戳記和主體 (與項目互動的使用者)。請注意,含有近期互動項目的項目可提高排名。
根據使用者點擊次數提升排名
Cloud Search 會收集目前搜尋結果的點擊次數,並藉由增加同一個使用者先前點選的項目,改善日後搜尋的排名。
透過查詢解讀影響排名
Cloud Search 的查詢解釋功能會自動解讀使用者查詢中的運算子和篩選器,並將這些元素轉換成以運算子為基礎的結構化查詢。查詢解讀功能會使用結構定義中定義的運算子和已建立索引的文件,推斷使用者查詢的意義。這個功能可讓使用者使用最少的關鍵字進行搜尋,同時仍取得精確的結果。詳情請參閱「建立結構定義以獲得最佳查詢解讀能力」。
依項目語言提升排名
「語言」是指針對所用語言與查詢語言不相符的項目提供排名降低排名。下列因素會影響項目排名依據語言:
查詢語言。搜尋查詢的自動偵測語言,或在
RequestOptions
中指定的languageCode
。如果您建構了自訂搜尋介面,應將
languageCode
設為使用者的介面語言或語言偏好設定 (例如網路瀏覽器的語言或搜尋介面頁面的語言)。自動偵測的查詢語言優先於languageCode
,因此當使用者以與介面不同的語言輸入查詢時,搜尋品質不會受到影響。項目語言。索引時在
ItemMetadata
中設定的contentLanguage
,或是 Cloud Search 自動偵測到的內容語言。如果文件的
contentLanguage
在索引時留空,且ItemContent
含有填入值,Cloud Search 會嘗試偵測ItemContent
中使用的語言,並將其儲存在內部。自動偵測的語言不會新增至contentLanguage
欄位。
如果查詢內容和項目的語言相符,系統就不會套用語言降低排名。如果這些設定不相符,項目就會降低。如果文件的 contentLanguage
為空白,且 Cloud Search 無法自動偵測語言,系統就不會套用語言降低排名。因此,即使 Cloud Search 無法偵測文件語言,也不會影響文件的排名。
根據項目情境提升排名
您可以提高項目排名,這些項目與搜尋查詢的情境更為相關。背景資訊 (contextAttributes
) 是可以在建立索引期間和搜尋要求中指定的一組已命名屬性,以提供特定搜尋查詢的背景資訊。
舉例來說,假設將員工福利文件等項目與 Location
和 Department
的內容更相關,例如城市 (San Francisco
)、州/省 (California
)、國家/地區 (USA
) 和 Department
(Engineering
)。在此情況下,您可以使用下列命名屬性為項目建立索引:
{
...
"metadata": {
"contextAttributes": [
{
name: "Location"
values: [
"San Francisco",
"California",
"USA"
],
},
{
name: "Department"
values: [
"Engineering"
],
}
],
},
...
}
當使用者在搜尋介面中輸入「befits」的搜尋查詢時,您可以在搜尋要求中加入使用者的位置資訊及部門。例如,以下搜尋要求包含芝加哥工程師的地點和部門資訊:
{
...
"contextAttributes": [
{
name: "Location"
values: [
"Chicago",
"Illinois",
"USA"
],
},
{
name: "Department"
values: [
"Engineering"
],
}
],
...
}
由於已建立索引的項目和搜尋要求都包含「Department=Engineering」和「Location=USA」的屬性,因此已建立索引的項目 (員工福利文件) 在搜尋結果中會顯示在較前面的位置。
現在,假設另一名印度工程師在搜尋介面中輸入「福利」的搜尋查詢,以下搜尋要求包含其位置和部門資訊:
{
...
"contextAttributes": [
{
name: "Location"
values: [
"Bengaluru",
"Karnataka",
"India"
],
},
{
name: "Department"
values: [
"Engineering"
],
}
],
...
}
由於已建立索引的項目和搜尋要求「只」包含「Department=Engineering」的屬性,所以已建立索引的項目在搜尋結果中顯示的位置只會稍微略高一些 (相較於美國伊利諾州芝加哥的工程師輸入的第一則「福利」搜尋查詢)。
以下是提高排名的一些情境範例:
- 位置:項目可以與特定地區的使用者有關,例如建築物、城市、國家/地區或區域。
- 職務角色:項目可以與特定工作角色的使用者更相關,例如技術文件寫入者或工程師。
- 部門:項目大小可能與某些部門有關聯性,例如銷售或行銷。
- 工作等級:項目關聯性,可以針對特定工作等級提供,例如董事或執行長。
- 員工類型:項目可能與特定類型的員工有關聯性,例如兼職和全職員工。
- 資歷:項目可能與員工的資歷更相關,例如新進員工。
根據商品熱門程度影響排名
Cloud Search 會大幅提高熱門項目的排名,也就是對近期搜尋查詢有點擊的項目增加。
透過點閱率影響排名
Cloud Search 會收集目前搜尋結果的點擊次數,並利用特定搜尋查詢提高熱門項目的排名,提升日後搜尋結果的排名。
搜尋品質設定的摘要 (建議和選用)
下表列出所有建議和選用的搜尋品質設定。這些建議應可協助您充分利用 Cloud Search 排名模型。
設定 | 位置 | 建議/選用 | 詳細說明 |
---|---|---|---|
結構定義設定 | |||
ItemContent 欄位 | ItemContent | 建議 | 建立或更新結構定義時,填入項目的非結構化內容。這個欄位用於產生摘要。 |
RetrievalImportance 欄位 | RetrievalImportance | 建議 | 建立或更新結構定義時,請為明顯重要或主題明確的文字屬性設定。 |
FreshnessOptions | FreshnessOptions | 選用 | 建立或更新結構定義時,請設定確保項目不會因資料有誤或缺少資料而降低排名。 |
索引設定 | |||
createTime /updateTime | ItemMetadata | 建議 | 在建立項目索引時填入資料。 |
contentLanguage | ItemMetadata | 建議 | 在建立項目索引時填入資料。如未列出,Cloud Search 會嘗試偵測 ItemContent 使用的語言。 |
owners 欄位 | ItemAcl() | 建議 | 在建立項目索引時填入資料。 |
自訂同義詞 | _dictionaryEntry 結構定義 | 建議 | 在索引層級定義資料來源層級或做為個別資料來源。 |
quality 欄位 | SearchQualityMetadata | 選用 | 如要提高基本品質升幅 (與其他語意相似的項目相比),請在建立索引時設定品質。為資料來源中的所有項目設定這個欄位,會使其效果失效。 |
商品層級互動資料 | interaction | 選用 | 如果資料來源記錄了使用者互動情形,並提供使用者互動的存取權,請在建立索引期間填入每個項目的互動資料。 |
整數/列舉屬性 | OrderedRanking | 選用 | 項目順序涉及相關項目時,請在建立索引時指定整數和列舉屬性的排序排名。 |
搜尋應用程式設定 | |||
Personalization=false | ScoringConfig 或使用 Cloud Search 管理員 UI | 建議 | 建立或更新搜尋應用程式時。請務必按照「透過個人化功能影響排名」的說明,提供正確的擁有者資訊 |
SourceImportance 欄位 | SourceCrowdingConfig | 選用 | 如要自訂調整特定資料來源的結果,請設定這個欄位。 |
numResults 欄位 | SourceCrowdingConfig | 選用 | 如要控制結果的多樣性,請設定這個欄位。 |
後續步驟
以下是您可能採取的後續步驟:
瞭解如何利用
_dictionaryEntry
結構定義,定義公司常用字詞的同義詞。如要使用_dictionaryEntry
結構定義,請參閱定義同義詞。