Индекс поиска Azure - поиск точного слова
Мы используем поисковый индекс Azure для одного из наших API поиска. У нас есть поле в поисковом индексе Azure, например, "Отображаемое имя" (строковое поле. Требование от API, когда мы выполняем поиск с использованием отображаемого имени, поиск должен быть точным поиском по полям.
Например: если мы ищем "Джордж Джозеф", поисковый индекс должен возвращать только записи, которые точно соответствуют отображаемому имени как "Джордж Джозеф", и не должен возвращать записи с именами - "Джордж Джозеф Джон" или Джон Джордж Джозеф ".
Есть ли способ, которым я могу сделать это?
С Уважением,
Джон
1 ответ
Вы можете использовать фильтр для достижения этого, предполагая, что вы заинтересованы в чувствительных к регистру совпадениях. Например, DisplayName eq 'George Joseph'
будет точно соответствовать George Joseph
но не будет соответствовать george JOSEPH
, Вы можете найти подробности о синтаксисе фильтра здесь.
Вы можете указать "&searchMode=All"
Когда вы устанавливаете searchMode=all, вы сообщаете поисковой системе, что все условия запроса должны совпадать хотя бы один раз в документе -
agency temps&$count=true&$top=30&$skip=0&searchMode=All&$filter=(CompanyCode eq '13453' and VNumber eq '00023232312016') &scoringProfile=BusinessProfile1&searchFields=VCategory
https://docs.microsoft.com/en-us/azure/search/query-lucene-syntax
В этом примере используется параметр searchMode=all. Когда в запросе есть операторы, обычно следует установить searchMode=all, чтобы гарантировать соответствие всем критериям.
GET /indexes / hotels / docs? Search=category:budget И "недавно отремонтированный"^3&searchMode=all&api-version=2020-06-30&querytype=full