补偿默认扩展、解释和优化

Google Cloud Search 提供了多种会影响搜索结果的默认扩展、解释和优化功能。如果您在搜索查询中发现意外结果,在与 Cloud Search 支持团队联系之前,请先参阅本指南。

默认展开次数

假设用户使用字符串(例如 [小李的 PDF])进行搜索,但一些返回的结果包含突出显示的字词,例如“文档”,而不是“PDF”。为什么结果包含突出显示的不在搜索查询中的字词?

默认情况下,与 Google 网页搜索一样,Google Cloud Search 不会仅搜索与查询中完全一致的字词,不过,Cloud Search 会扩展查询以包含同义词和词干(即使您未实现自己的同义词也是如此)。这种扩展旨在检索与查询的概念和意图广泛匹配的文档。选择这一大量文档后,排名算法会确保将最匹配的结果置于结果集的顶部。

当用户搜索 [Joe's PDFs] 时,Cloud Search 额外提供了以下字词作为可接受的字词:

  • 对于 [Joe's],Cloud Search 还可能匹配“joe”(词干扩展)和“joes”(基于标点符号的同义词)。
  • 对于 [PDF],Cloud Search 还可能匹配“文档”(同义词扩展)和“pdf”(词干扩展)。

默认情况下,同义词不一定是双向的。例如,如果用户搜索“钓鱼式攻击”一词,Cloud Search 可能会将“钓鱼式攻击”作为同义词扩展匹配。但是,如果用户搜索“钓鱼式攻击”一词,Google 可能不会将“钓鱼式攻击”作为扩展匹配。

带连字符的字词与不带连字符的字词的扩展

当用户搜索带连字符的字词与不带连字符的等效字词(例如 [walk-in closet] 和 [walk in closet])时,Cloud Search 会以不同方式处理这些查询。

此外,还对带连字符和下划线的字词(例如 [walk-in] 和 [walk_in])采用不同的优化方式。

补偿默认展开次数

默认情况下,并不保证一定能展开。如果要确保同义词或特定网域的同义词扩展的双向性,请创建您自己的网域专用同义词集。如需详细了解如何实现同义词,请参阅定义同义词

默认解释

Cloud Search 还提供自然语言解释功能,可根据为特定数据源上传的架构来解释查询中使用的对象、属性和字段值。如需详细了解此自然语言解释,请参阅设计架构结构以获得最佳查询解释

停用自然语言解释

如需针对特定查询停用自然语言解释,请在搜索请求中将 QueryInterpretationOptions.disableNlInterpretation 设置为 true

默认优化

Cloud Search 也提供以下默认优化措施:

  • 混合了拼写更正提供的结果。例如,如果查询字符串是 [corpoate benefits],则 Cloud Search 将匹配“corpoate”和“corpoate”的正确拼写。

  • 对于生成零个或很少结果的查询,Cloud Search 在匹配结果时使用一组更为宽松的相关字词,比直接同义词更广泛。如需了解详情,请参阅处理补充结果

标准化文档和查询

标准化是指在执行查询之前或之后对某些字词或短语进行标准化。为了确保对查询的响应更加一致,请考虑通过以下方式将文档(在编入索引之前或编入索引期间)和查询(在用户执行查询之后)标准化:

  • 如需对文档进行标准化处理,请执行以下操作:

    1. 为代码库中文档使用的关键字词选择规范拼写。
    2. 更正源代码库文档中的拼写或将内容编入索引时,使其与规范拼写一致。
  • 如需规范化查询,请执行以下操作:

    1. 拦截用户查询,然后再将其发送到 Cloud Search。
    2. 重写用户查询中的字词,以匹配编入索引的数据源中最常见的拼写。
    3. 将查询发送到 Cloud Search。

停用所有查询的扩展、解释和优化功能

如需停用特定查询的扩展、解释和优化功能,请在搜索请求中将 QueryInterpretationOptions.enableVerbatim Mode 设置为 true