機構通常會有專屬術語,或以多種方式指稱概念或事物。您應定義同義詞,建立詞彙的等價關係,協助使用者在搜尋時找到項目。
如要定義同義字,請使用 _dictionaryEntry
知名結構化資料建立項目索引。
_dictionaryEntry
類型的項目可具有下列屬性:
屬性 | 類型 | 說明 | 是否必要? |
---|---|---|---|
_term |
string | 要定義的字詞。建議使用不含連字號或標點符號的字詞或片語。 | 必填 |
_synonym |
string (repeated) | 要納入查詢的替代字詞,這些查詢會比對 _term 中定義的字串。 |
必填 |
_onlyApplicableForAttachedSearchApplications |
boolean | 可依資料來源和搜尋應用程式將同義字分組。詳情請參閱「定義資料來源專屬的同義字」。 | 選用 |
如果使用者在查詢中加入 _term
屬性的值,有效查詢就會變成「term OR synonyms」(字詞或同義字)。舉例來說,如果字詞 "scifi" 定義為同義字 "science fiction",則包含字詞 "scifi" 的查詢會比對包含 "scifi" 或 "science fiction." 的項目
同義詞不會雙向套用。如果查詢是針對 "science fiction," Cloud Search 系統不會對查詢套用任何同義字。查詢只會比對包含 "science fiction." 的項目,包含 "scifi" 的項目則會省略。
如要讓兩個字詞完全互換,請分別定義每個字詞:
字詞 | 同義詞 |
---|---|
scifi | science fiction |
science fiction | scifi |
在處理查詢時,系統會先移除連字號和其他標點符號,再套用同義字。使用者查詢 "sci-fi"
與 _term
"sci fi."
如要為使用者可能以連字號分隔的字詞建立同義字,請先將 _term
正規化,以空白字元取代連字號。
延續上述範例,下列定義符合使用者查詢,並將 "sci-fi," "sci fi," "scifi," 和 "science fiction" 視為可互換:
字詞 | 同義詞 |
---|---|
scifi | science fiction, sci fi |
sci fi | science fiction, scifi |
science fiction | scifi, sci fi |
根據預設,任何資料來源中的同義字都會套用至整個網域。具體來說,同義字會套用至所有搜尋應用程式,用於所有搜尋 (不論資料來源為何)。如要使用資料來源專屬的同義字,請參閱「定義資料來源專屬的同義字」。
使用 Cloud Search SDK 定義全域同義字
您可以使用內容連結器 SDK 定義字詞及其同義字。如需建構連接器的操作說明,請參閱「建立內容連接器」。
下列程式碼片段說明如何根據 CSV 檔案記錄,建構代表字詞和同義字的 RepositoryDoc
:
定義同義字時,請注意下列事項:
- 同義字項目必須是公開網域。在上述範例中,只要將 ACL 設為
DOMAIN_PUBLIC_ACL
即可達成。 - 下列屬性不應為設定檔定義,因為這些屬性會覆寫程式碼中的網域公開設定:
defaultAcl.mode=FALLBACK
defaultAcl.public=true
定義搜尋應用程式專用的同義詞
根據預設,同義字會套用至所有搜尋應用程式的所有資料來源。
不過,假設貴機構有獨立的工程和銷售團隊,且您想為每個團隊提供不同的搜尋體驗,包括特定職務的同義字,在這種情況下,您可以建立一個搜尋應用程式,使用工程專屬的資料來源和同義詞,並建立另一個搜尋應用程式,使用銷售專屬的資料來源和同義詞。如要達成這個目標,請使用 _onlyApplicableForAttachedSearchApplications=true
為特定資料來源中的每個同義字建立索引。這項設定會限制同義字,只將同義字套用至包含特定資料來源的搜尋應用程式。
舉例來說,在先前的程式碼範例中加入下列程式碼行,可確保索引同義字是資料來源專屬:
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);