Помечать параметры запятыми в 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 теперь класс делает все это для вас.

Другие вопросы по тегам