提高搜索质量

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

排名是指项的排序,而召回率是指检索到的相关项的数量。“项”(或文档)是 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 属性。

影响新鲜度

新鲜度用于衡量商品的修改时间,使用 ItemMetadata 中的 createTimeupdateTime。 旧商品的排名较低。

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

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

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

影响质量

质量可衡量商品的准确性和实用性。使用 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 会将语言与查询语言不匹配的项的排名降位。将 RequestOptions 中的 languageCode 设置为用户偏好设置。

商品上下文

使用 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. 定义同义词