Cloudsearch 推荐器

Cloudsearch suggester

我最近开始使用云搜索。当我遇到术语 "Suggester" 时,我感到很困惑。我没有得到建议者和前缀搜索之间的区别。这两个不是一样的吗?如果没有,有人可以向我解释有什么区别吗?

提前致谢。

/suggest API 和前缀搜索很相似,因为它们都执行前缀查询。但有一些关键差异需要注意的建议:

  • 限于单个字段中的匹配项
  • 仅前缀匹配
  • 专用API
  • 紧凑response body(仅returns匹配的字段、分数和文档ID)

我猜测建议 API 与有限的功能集放在一起只是为了方便提供 search-as-you-type 建议。根据我的经验,这个 API 的最大缺点是您依赖于用户以您的字段开头的确切词开始他们的查询。

下面是我公司的一个例子,可以帮助说明这个问题。假设您有 5 个文档,标题中包含单词 "soap",但位于不同的位置。只有 和 "soap" 开头的文档将作为匹配项返回。

luxury bath soap
foaming hand soap
soap dispenser <--- (only prefix match)
liquid hand soap
dish soap

显然 所有 这些标题都是相关的,因为它们都包含准确的搜索词。但只有 "soap dispenser" 是前缀匹配,这会导致非常糟糕的用户体验。我认为肯定有像这样的前缀查询的地方,但大多数用户不会足够熟悉搜索索引,不知道从什么词开始搜索。


我最终只使用了 /search API,这样我就可以根据现场任何地方的比赛提供建议。我限制了返回的字段数量,以限制响应的大小 body,这对我来说非常好。