在引用某种概念或事物时,组织通常会采用独特的术语或多种引用方式。建议您定义同义词以建立等效术语,从而帮助用户在搜索时找到相关项。
如需定义同义词,请使用 _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
来实现的。 - 不应为您的配置文件定义以下属性
因为它们会覆盖您代码中的域公开设置:
<ph type="x-smartling-placeholder">
- </ph>
defaultAcl.mode=FALLBACK
defaultAcl.public=true
定义搜索应用专用同义词
默认情况下,同义词会应用于所有搜索中的所有数据源 应用。
不过,假设贵组织有单独的工程团队和销售团队,
您希望为每个团队提供不同的搜索体验,包括
特定于工作角色的同义词。在这种情况下,您可以创建一个搜索
具有特定工程的数据源、同义词和其他
包含销售特定数据源和同义词的搜索应用程序。要实现
可将特定数据源中的每个同义词编入索引
使用 _onlyApplicableForAttachedSearchApplications=true
。这个
设置可对同义词进行限制,使其仅应用于搜索
包含特定数据源的应用。
例如,将 下面的代码行添加到上一个代码示例可确保编入索引的同义词 因数据源而异:
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);