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

Google Cloud Search 具有多种默认的扩展、解读和优化功能,这些功能会影响搜索结果。如果您在搜索查询中看到意外结果,请先参阅本指南,然后再与 Cloud Search 支持团队联系。

默认展开

假设用户使用 [Joe’s PDFs] 等字符串进行搜索,但返回的部分结果包含突出显示的字词(例如“documents”),而不是“PDFs”。为什么结果中包含搜索查询中没有的突出显示的字词?

默认情况下,Google Cloud Search 与 Google 网页搜索一样,不仅会搜索查询中的确切字词。相反,Cloud Search 会扩展查询,以包含同义词和词干(即使您尚未实现自己的同义词)。进行这种扩展是为了检索与查询的意图和含义大致匹配的文档。在选择此广泛的文档集后,排名算法会确保将最匹配的文档放在结果集的顶部。

当用户搜索 [Joe’s PDFs] 时,Cloud Search 提供了以下可接受的附加字词:

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

默认情况下,同义词不一定是双向的。例如,如果用户搜索“网络钓鱼”一词,Cloud Search 可能会将“钓鱼”匹配为同义词扩展。不过,如果用户搜索字词“phish”,Google 可能不会将“phishing”作为扩展字词进行匹配。

连字符分隔字词与非连字符分隔字词的扩展

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

此外,对于连字符和下划线分隔的字词(例如 [walk-in] 和 [walk_in]),系统会使用不同的优化方式。

补偿默认展开次数

默认情况下,无法保证任何扩展。如果您想确保同义词或特定领域的同义词扩展具有双向性,请创建自己的特定领域同义词集。如需详细了解如何实现同义词,请参阅定义同义词

默认解读

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

停用自然语言解读

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

默认优化

Cloud Search 还提供以下默认优化:

  • 将拼写更正提供的结果融合到最终结果中。例如,如果查询字符串为 [corpoate benefits],Cloud Search 会匹配“corpoate”和“corporate”的正确拼写。

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

对文档和查询进行归一化处理

归一化是指在提出查询之前或之后,将某些字词或短语标准化。为确保获得更一致的查询结果,请考虑通过以下方式对文档(在编制索引之前或期间)和查询(在用户提出查询之后)进行归一化处理:

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

    1. 为代码库中文档内使用的关键字选择规范拼写。
    2. 更正源代码库文档或索引内容中的拼写,以匹配规范拼写。
  • 如需对查询进行归一化处理,请执行以下操作:

    1. 在将用户查询发送到 Cloud Search 之前拦截这些查询。
    2. 重写用户查询中的字词,以匹配已编入索引的数据源中最常见的拼写。
    3. 将查询发送到 Cloud Search。

针对所有查询停用扩展、解读和优化功能

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