Azure cognitive search Azure搜索建议器-为什么返回重复值?

Azure cognitive search Azure搜索建议器-为什么返回重复值?,azure-cognitive-search,Azure Cognitive Search,当用户在筛选字段中键入时,我想显示一个包含建议的自动完成 我正在尝试使用Azure Search Suggester,但它返回重复的值 例: 返回的内容: { "@odata.context": "https://xxx.search.windows.net/indexes('assets')/$metadata#docs(accountName)", "value": [ { "@search.text": "CAIXA BANK", "accountN

当用户在筛选字段中键入时,我想显示一个包含建议的自动完成

我正在尝试使用Azure Search Suggester,但它返回重复的值

例:

返回的内容:

{
  "@odata.context": "https://xxx.search.windows.net/indexes('assets')/$metadata#docs(accountName)",
  "value": [
    {
      "@search.text": "CAIXA BANK",
      "accountName": "CAIXA BANK"
    },
    {
      "@search.text": "CAIXA BANK",
      "accountName": "CAIXA BANK"
    },
    {
      "@search.text": "BANK OF AMERICA",
      "accountName": "BANK OF AMERICA"
    },
    {
      "@search.text": "BANK OF AMERICA",
      "accountName": "BANK OF AMERICA"
    },
    {
      "@search.text": "BANK OF AMERICA",
      "accountName": "BANK OF AMERICA"
    }
  ]
}
我希望结果包含5个不同的accountName,而不是具有相同accountName的每个文档的重复值

我是个失败者,这里缺什么

编辑

这似乎是预期的行为,建议返回不同的文件。。。这对我来说毫无意义,如果我想检索文档,我会进行查询,而不是建议


如果我们不能使用建议填充自动完成字段,那么建议的用例是什么?

正如评论中的链接所指出的,Azure Search中的建议API建议文档而不是查询词。建议API返回与匹配字段关联的文档ID。常见的用例是查找标题匹配的报纸文章或名称与搜索的术语/短语匹配的产品

一些客户正在使用建议API自动完成搜索字段。在这种情况下,我们建议在客户端重复删除返回的字段或使用辅助索引。然而,该功能并不是为此而设计的。事实上,我们正在开发一项新功能,该功能建议从语料库中搜索词汇,以实现自动补全。当功能可用时,我将更新线程


Nate

正如评论中的链接所指出的,Azure Search中的建议API建议文档而不是查询词。建议API返回与匹配字段关联的文档ID。常见的用例是查找标题匹配的报纸文章或名称与搜索的术语/短语匹配的产品

一些客户正在使用建议API自动完成搜索字段。在这种情况下,我们建议在客户端重复删除返回的字段或使用辅助索引。然而,该功能并不是为此而设计的。事实上,我们正在开发一项新功能,该功能建议从语料库中搜索词汇,以实现自动补全。当功能可用时,我将更新线程


Nate

您可以使用默认情况下进行分组的自动完成API,该API可能重复。但是,如果您需要任何其他字段以及建议的术语,此API将不适合您的需要。因此,您可以自己执行建议调用并对项目进行分组,也可以使用自动完成API。可能重复的项目可以使用默认情况下进行分组的自动完成API。但是,如果您需要任何其他字段以及建议的术语,此API将不适合您的需要。所以,要么自己做一个建议调用并对项目进行分组,要么使用自动完成API。如果建议API返回文档,我仍然不明白它与搜索API有何不同?调用方中的重复数据消除使顶部参数无效。。。例:使用Top:20,所有返回的文档都具有相同的值…很高兴它正在处理中。用例很简单:想想谷歌的建议。。。返回的是术语,而不是特定的页面。它们实际上没有太大区别。建议API是搜索的一个特殊版本,专门为常用的提前类型(如搜索词仅部分完成,响应时间很重要等)定制。您实际上可以通过使用自定义分析器进行搜索来模拟建议API()除非它已经在Suggest API中为您完成了。如果Suggest API返回文档,我仍然不知道它与搜索API有什么不同?调用方中的重复数据消除使顶部参数无效。。。例:使用Top:20,所有返回的文档都具有相同的值…很高兴它正在处理中。用例很简单:想想谷歌的建议。。。返回的是术语,而不是特定的页面。它们实际上没有太大区别。Suggest API是搜索的一个特殊版本,专门为常用的提前类型(如搜索词仅部分完成,响应时间很重要等)定制。实际上,您可以通过使用自定义分析器()进行搜索来模拟Suggest API,但在Suggest API中已经为您完成了。
{
  "@odata.context": "https://xxx.search.windows.net/indexes('assets')/$metadata#docs(accountName)",
  "value": [
    {
      "@search.text": "CAIXA BANK",
      "accountName": "CAIXA BANK"
    },
    {
      "@search.text": "CAIXA BANK",
      "accountName": "CAIXA BANK"
    },
    {
      "@search.text": "BANK OF AMERICA",
      "accountName": "BANK OF AMERICA"
    },
    {
      "@search.text": "BANK OF AMERICA",
      "accountName": "BANK OF AMERICA"
    },
    {
      "@search.text": "BANK OF AMERICA",
      "accountName": "BANK OF AMERICA"
    }
  ]
}