提高搜索质量

“搜索质量”是指执行搜索查询的用户对于搜索结果的排名和召回率等质量体验。

排名是指项的排序,而召回率是指检索到的相关项的数量 。(或文档)是指 Google Cloud Search 可以编入索引的任何数字内容,例如 Microsoft Office 文档、PDF 文件、数据库行或唯一网址。项包含以下内容:

  • 结构化元数据
  • 可编入索引的内容
  • ACL

Cloud Search 使用各种信号来检索结果并对其进行排名。 您可以通过架构中的设置、项的内容和元数据以及搜索应用来影响这些信号。本文档可帮助您通过修改这些信号影响因素来提高搜索质量。

如需查看设置摘要,请参阅 搜索质量设置摘要

影响话题性分数

“话题性”是指搜索结果与查询字词的相关性。 Cloud Search 根据以下因素计算话题性:

  • 每个查询字词的重要性。
  • 命中数(查询字词在内容或元数据中出现的频率)。
  • 查询字词与已编入索引的项之间的匹配类型。

如需影响文本属性的话题性分数,请在架构中定义 RetrievalImportance 。与 RetrievalImportance 较高的属性进行匹配时,会生成较高的分数。

例如,如果您存储软件 bug 历史记录,用户可能会按 bug 名称进行查询。将名称的 RetrievalImportance 设置为 HIGHEST。对于说明,请使用 DEFAULT

{
  "objectDefinitions": [
    {
      "name": "issues",
      "propertyDefinitions": [
        {
          "name": "summary",
          "textPropertyOptions": {
            "retrievalImportance": { "importance": "HIGHEST" }
          }
        },
        {
          "name": "description",
          "textPropertyOptions": {
            "retrievalImportance": { "importance": "DEFAULT" }
          }
        }
      ]
    }
  ]
}

对于 HTML 文档,标记(例如 <title><h1>)有助于确定字词 的重要性。如果 ContentFormatTEXT,则 ItemContent 使用 DEFAULT 重要性。如果为 HTML,则重要性取决于 HTML 属性。

影响新鲜度

“新鲜度”是指项最近修改的时间,使用 createTimeupdateTimeItemMetadata 中衡量。较旧的项排名较低。

您可以通过调整 freshnessPropertyfreshnessDuration FreshnessOptions 来影响新鲜度。 借助 freshnessProperty,您可以使用自定义日期或时间戳(而不是 updateTime)。对于 bug,您可以使用截止日期,以便日期最接近现在的项排名更高。

{
  "objectDefinitions": [
    {
      "name": "issues",
      "options": {
        "freshnessOptions": { "freshnessProperty": "duedate" }
      }
    }
  ]
}

freshnessDuration 可以用来确定项被视为过期的时间。如果值过大(例如 100 年),则会导致新鲜度对排名的影响失效。这对于员工个人资料等静态数据非常有用。对于新闻,请使用较小的值(例如三天)。

影响质量

质量衡量项的准确性和实用性。使用 SearchQualityMetadata指定介于 0 和 1 之间的值。值越大,排名越高。例如,您可以提升人力资源部门撰写的福利文档的排名。

{
  "metadata": {
    "searchQualityMetadata": { "quality": 1.0 }
  }
}

使用字段类型影响排名

您可以使用 OrderedRanking根据枚举或整数属性来影响排名:

  • NO_ORDER(默认值):不影响排名。
  • ASCENDING:值越大,排名越高。
  • DESCENDING:值越小,排名越高。

对于 bug 优先级,如果 HIGH 为 1 且 LOW 为 3,请使用 DESCENDING。对于 votes 属性,请使用 ASCENDING

通过查询扩展影响排名

“查询扩展”使用同义词和拼写来改进结果。

使用同义词

Cloud Search 使用公共 Web 内容作为同义词。您还可以为组织专用术语定义自定义同义词。请参阅 定义同义词

使用拼写

Cloud Search 在 SpellResult中提供拼写建议。 它还使用更正的拼写作为同义词来查找文档。

通过搜索应用设置影响排名

搜索应用提供上下文信息。您可以使用以下设置来影响排名。

调整评分配置

指定 ScoringConfig 以停用 新鲜度个性化。 停用个性化会移除所有者交互情况 等排名提升条件。请参阅 自定义搜索体验

调整源配置

指定数据源级设置:

  • 源重要性:来自重要性为 HIGH 的源的项排名更高。
  • 拥挤:限制来自单个源的结果数量(默认值为 3),以确保多样性。

个性化

个性化会根据用户对结果进行优先排序:

  • 项所有权:提升用户拥有的项的排名。
  • 项交互情况:提升用户最近查看、 编辑或评论过的项的排名。
  • 用户点击:提升用户之前点击过的项的排名。请勿修改结果网址,因为系统会使用该网址来收集此数据。

查询解释

“查询解释”功能使用架构定义将用户查询转换为基于运算符的结构化查询。 即使关键字很少,也能提供精确的结果。请参阅 构建架构以获得最佳查询解释

推荐项语言

Cloud Search 会将语言与查询语言不匹配的项的排名降位。将 languageCodeRequestOptions 中设置为用户偏好的语言。

推荐项上下文

使用 contextAttributes 提升与查询上下文(例如位置或 部门)相关的项的排名。

推荐项热门程度

Cloud Search 会提升用户在最近的查询中经常点击的项的排名。请勿修改搜索结果网址,因为系统会使用该网址来跟踪这些点击。

搜索质量设置摘要

下表提供了搜索质量设置的摘要:

架构设置

设置 位置 建议 详细信息
ItemContent ItemContent 推荐 话题性
RetrievalImportance RetrievalImportance 推荐 话题性
FreshnessOptions FreshnessOptions 可选 新鲜度

索引设置

设置 位置 建议 详细信息
createTime/updateTime ItemMetadata 推荐 新鲜度
contentLanguage ItemMetadata 推荐 项语言
owners ItemAcl 推荐 推荐项所有权
自定义同义词 _dictionaryEntry 推荐 使用同义词
quality SearchQualityMetadata 可选 影响质量
互动数据 interaction 可选 项交互情况
OrderedRanking OrderedRanking 可选 字段类型

搜索应用设置

设置 位置 建议 详细信息
停用个性化设置 ScoringConfig 推荐 个性化
源重要性 SourceCrowdingConfig 可选 源配置
挤出 SourceCrowdingConfig 可选 源配置

后续步骤

  1. 构建架构以获得最佳查询解释
  2. 定义同义词