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