在 Azure 搜索标签提升中用逗号标记参数

Tag parameters with commas in Azure Search tag boosting

我们在 Azure 搜索中的评分配置文件上使用标记提升,以根据相交字符串的数量提升结果。

ie. 
Doc1 has { id: 1, name: "thing", stuff:["1 stuff","2 stuff","3,4,5 stuff"] } 
Doc2 has { id: 2, name: "thing2", stuff:["1 stuff","2 stuff"] }

使用评分参数stuffParam:1 stuff,2 stuff进行搜索即可。

但是在尝试提升 stuffParam:1 stuff,3,4,5 stuff 时它会分崩离析,因为查询字符串中的逗号分隔会破坏它。

有没有办法转义逗号,或者忽略标点符号,或者这是不可能的?

这是由于 Azure 搜索中的错误所致,该错误现已修复。您现在可以使用带有破折号分隔符的新语法,而不是使用冒号分隔符的旧语法,并使用引号来转义任何包含逗号的标签。例如,这个:

stuffParam:1 stuff,3,4,5 stuff

现在可以这样写:

stuffParam-1 stuff,'3,4,5 stuff'

如果您有包含引号的标签,您可以将它们加倍以转义它们。例如:

stuffParam-'Hello, O''Brien'

将匹配标签 "Hello, O'Brien"。

如果您使用 1.1.2 版或更高版本的 Azure 搜索 .NET SDK,ScoringParameter class 现在可以为您完成这一切。