Azure认知搜索-模糊搜索-在建议api和搜索api之间保持一致



我已经实现了建议+自动完成一个使用搜索api的列表页面,但我不能在建议和列表中拥有一致的结果。

所以我在建议模式下的查询是:https://xxx/indexes/my-index/docs/suggest?suggesterName=generalSearchSuggester&最高= 3,模糊= true&选择美元= sys_Id,名字,Url&搜索= nin& api版本= 2020-06-30这将返回3个结果:

尼娜
  • Nina25
  • 尼克

和搜索api我的查询是:https://xxx/indexes/my-index/docs?api-version=2020-06-30&及数= true& queryType = full& searchMode = any& % 24跳过= 0,% 24前= 16,搜索= nin * ~ 1, % 24选择=名称

返回2个结果

尼娜
  • Nina25

在这个页面:https://learn.microsoft.com/en-us/rest/api/searchservice/suggestions我看到"编辑距离是1/查询string"所以我猜这对应于~1,但我不明白如何使它一致。

问候,

在您的搜索示例中,您正在使用通配符搜索和模糊搜索的组合。如文档所述,要使用模糊搜索,请从查询中删除*,并直接使用波浪字符指定编辑距离。

https://xxx/indexes/my-index/docs?api-version=2020-06-30&&count=true&queryType=full&searchMode=any&%24skip=0&%24top=16&search=nin~1&%24select=Name

这将匹配拼写距离为1的标记。

  • nin~1 (matches nina)
  • n ~2(匹配nick)
  • ninin ~3(匹配nina25)

模糊搜索匹配相似的词,包括拼写错误单词。要进行模糊搜索,请在a的末尾附加波浪形~符号带可选参数的单个单词,取值在0到2之间,表示指定编辑距离。例如,blue~或blue~1将返回蓝色,蓝色和胶水。

自动补全与搜索

自动补全建议器的目的是为您提供关于搜索内容的模糊建议。它告诉你,你可以搜索nina, nina25或者nick。在搜索这些术语时,您将获得包含令牌nina(或nina25或nick)的所有结果。

最新更新