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 在匹配结果时会使用一组更宽松的相关字词(比直接同义词更宽泛)。如需了解详情,请参阅处理补充结果。
对文档和查询进行归一化处理
归一化是指在提出查询之前或之后,将某些字词或短语标准化。为确保获得更一致的查询结果,请考虑通过以下方式对文档(在编制索引之前或期间)和查询(在用户提出查询之后)进行归一化处理:
如需对文档进行归一化处理,请执行以下操作:
- 为代码库中文档内使用的关键字选择规范拼写。
- 更正源代码库文档或索引内容中的拼写,以匹配规范拼写。
如需对查询进行归一化处理,请执行以下操作:
- 在将用户查询发送到 Cloud Search 之前拦截这些查询。
- 重写用户查询中的字词,以匹配已编入索引的数据源中最常见的拼写。
- 将查询发送到 Cloud Search。
针对所有查询停用扩展、解读和优化功能
如需针对特定查询停用扩展、解读和优化,请在搜索请求中将 QueryInterpretationOptions.enableVerbatim Mode
设置为 true
。