Помечать параметры запятыми в Azure Search taging boost
Мы используем повышение тегов в профиле скоринга в поиске 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
как разделение запятыми в строке запроса разорвать его.
Есть ли способ избежать запятых, или пунктуация игнорируется, или это невозможно?
1 ответ
Это произошло из-за ошибки в поиске Azure, которая была исправлена. Вместо старого синтаксиса с разделителем двоеточий теперь вы можете использовать новый синтаксис с разделителем тире и использовать кавычки для экранирования любых тегов, которые содержат запятые. Например, это:
stuffParam:1 stuff,3,4,5 stuff
Теперь можно написать так:
stuffParam-1 stuff,'3,4,5 stuff'
Если у вас есть теги, которые содержат кавычки, вы можете удвоить их, чтобы избежать их. Например:
stuffParam-'Hello, O''Brien'
Будет соответствовать тегу "Привет, О'Брайен".
Если вы используете версию 1.1.2 или более новую версию Azure Search .NET SDK, ScoringParameter
теперь класс делает все это для вас.