我如何使Algolia搜索Guaruntee将返回许多结果



我需要阿尔戈利亚总是从全文搜索中返回5个结果,即使查询文本本身与实际返回的结果几乎没有或无关。在有人建议之前,我已经尝试将removeWordsIfNoResults选项设置为所有可能的模式,但这仍然不能保证我获得5个结果。

目的是创建一个"相关实体"侧边栏,其中当前实体的名称用于搜索其他实体。

有什么建议?

使用 removeWordsIfNoResults=allOptional查询参数确实是一个好方法 ->,因为默认情况下,所有查询单词都需要匹配对象, showerbacking to'可选'>如果您的查询单词(或单词的组合)与任何内容都不匹配,则仍然是检索结果的好方法。

index.search(query, { removeWordsIfNoResults: 'allOptional' });

另一个解决方案是始终将所有查询单词视为可选的(不仅是后备);为了确保查询foo bar baz被解释为 OPT(foo) AND OPT(bar) AND OPT(baz)< => foo OR bar OR baz。不同之处在于,此查询将比上一个查询更多的结果,因为1个单个匹配的单词足以检索对象。

index.search(query, { optionalWords: query });

话虽如此,没有办法迫使发动机取回"至少" 5个结果。我建议要拥有一个小的前端逻辑: - 使用removeWordsIfNoResultsoptionalWords进行查询 - 如果引擎返回少于5个结果,请进行另一个查询

最新更新