我们在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
因为查询字符串中的逗号分隔打破它时,它就崩溃了。
有没有办法逃脱逗号,或忽略标点符号,或者这是不可能的?
答案 0 :(得分:2)
这是由于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 Search .NET SDK,ScoringParameter
类现在可以为您完成所有这些操作。