機構往往擁有獨特的術語或多種方法 代表某個概念或事物您應該定義同義詞 幫助使用者找到符合條件的字詞。
同義詞是以 _dictionaryEntry
已知為項目建立索引
結構定義。
_dictionaryEntry
類型的項目可包含下列屬性:
屬性 | 類型 | 說明 | 必填與否 |
---|---|---|---|
_term |
string | 要定義的字詞。建議值是沒有標點符號的連續字詞或詞組。 | 必填 |
_synonym |
string (repeated) | 與 _term 中定義的字串相符的查詢中要包含的替代字詞。 |
必填 |
_onlyApplicableForAttachedSearchApplications |
boolean | 讓您依資料來源和搜尋應用程式將同義詞分組。詳情請參閱「定義資料來源專屬的同義詞」。 | 選用 |
當使用者在查詢中加入 _term
屬性的值時,
「有效的」查詢會變成「字詞 OR 同義詞」。舉例來說,
字詞「"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 定義全域同義詞
您可以使用 Content Connector SDK 來定義字詞及其同義詞。詳情請見 為以下項目建立內容連接器: 有關建立連接器的指示。
下列程式碼片段說明如何建立
RepositoryDoc
表示字詞和同義詞,以 CSV 檔案記錄表示:
定義同義詞時,請注意下列事項:
- 同義詞項目必須對外公開。在先前的範例中
方法是將 ACL 設為
DOMAIN_PUBLIC_ACL
。 - 不應為設定檔定義下列屬性
因為會覆寫程式碼中的網域公開設定:
defaultAcl.mode=FALLBACK
defaultAcl.public=true
定義搜尋應用程式專用的同義詞
根據預設,同義詞會套用至所有搜尋的所有資料來源 應用程式。
不過,假設貴機構有不同的工程和銷售團隊,且
您會想要為每個團隊提供不同的搜尋體驗,包括
職務專屬同義詞在這種情況下,您可以建立一個搜尋
含有工程專屬資料來源和同義詞的應用程式
收集特定銷售資料來源和同義詞的搜尋應用程式完成
也就是為特定資料來源中的每個同義詞建立索引
使用 _onlyApplicableForAttachedSearchApplications=true
。這個
設定限制同義詞,只套用到搜尋
包含特定資料來源的應用程式
舉例來說,將 在前一個程式碼範例的程式碼行中,可確保建立索引的同義詞。 都屬於特定資料來源:
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);