Индекс поиска 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

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