【发布时间】:2020-04-17 22:56:24
【问题描述】:
当用户在过滤器字段中输入内容时,我想显示一个包含建议的自动完成功能。
我正在尝试为此使用 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 的文档的重复值...
我在这里遗漏了什么?
编辑
这似乎是预期的行为,建议返回不同的文档……这对我来说毫无意义,如果我想检索文档,我会做一个查询,而不是一个建议。
如果我们不能使用它们来填充自动完成字段,建议的用例是什么?
【问题讨论】:
-
您可以使用默认进行分组的自动完成 API。 docs.microsoft.com/en-us/rest/api/searchservice/autocomplete 但是,如果您需要任何其他字段以及建议的术语,则此 API 将无法满足您的需求。因此,要么自己进行 Suggest 调用并将项目分组,要么使用 Autocomplete API。