Google Cloud Search 有几项默认的展开、解读和优化功能,会影响搜索结果。如果您在搜索查询中看到意外结果,请先参阅本指南,然后再与 Cloud Search 支持团队联系。
默认展开
假设用户使用字符串(例如“Joe 的 PDF 文件”)进行搜索,但部分返回的结果包含突出显示的字词(例如“文档”而非“PDF 文件”)。为什么搜索结果中包含搜索查询中没有的突出显示的字词?
默认情况下,与 Google 网页搜索一样,Google Cloud Search 不会仅搜索查询中的确切字词。相反,Cloud Search 会扩展查询,使其包含同义词和词根(即使您尚未实现自己的同义词)。此扩展是为了检索与查询的想法和意图大致匹配的文档。选择这组广泛的文档后,排名算法会努力确保最匹配的文档位于结果集中的顶部。
当用户搜索 [Joe’s PDFs] 时,Cloud Search 会提供以下其他可接受的字词:
- 对于“Joe’s”,云端搜索可能还会匹配“joe”(词干展开)和“joes”(基于标点符号的同义词)。
- 对于“PDF”,Cloud Search 可能还会匹配“文档”(同义词展开)和“pdf”(词干展开)。
默认情况下,同义词不一定是双向的。例如,如果用户搜索字词“钓鱼式攻击”,Cloud 搜索可能会将“phish”作为同义词扩展进行匹配。不过,如果用户搜索字词“phish”,Google 可能不会将“phishing”作为展开字词进行匹配。
带连字符和不带连字符的字词的展开
当用户搜索带连字符的字词与其不带连字符的同义词时(例如“步入式衣帽间”和“步入式衣帽间”),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
。