在 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 现在可以为您完成这一切。
我们在 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 现在可以为您完成这一切。