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

时间:2016-11-29 19:57:05

标签: azure-search

当用户输入过滤字段时,我想显示包含建议的自动填充。

我尝试使用Azure Search Suggester,但它会返回重复值吗?

例如:

POST /indexes/assets/docs/suggest?api-version=2016-09-01 HTTP/1.1
Host: xxx.search.windows.net
api-key: xxx
Content-Type: application/json

{
    search: 'bank',
    suggesterName: 'sg',
    top:5,
    searchFields: "accountName",
    select: 'accountName'
}

返回的是什么:

{
  "@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的文档的重复值...

我在这里遗失了什么?

修改

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

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

1 个答案:

答案 0 :(得分:3)

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

有些客户正在使用Suggest API自动填充搜索字段。在这种情况下,我们建议在客户端重复删除返回的字段或使用二级索引。然而,该功能并非专为此而设计。事实上,我们正在研究一种新功能,该功能可以从语料库中建议搜索字词,以实现自动填充功能。我将在功能可用时更新线程。

Nate