Поиск Azure, точное фразовое соответствие

У нас есть лазурное веб-приложение, в котором есть одно поле поиска, когда мы вводим текст в двойных кавычках, например «Служба приложений», он перечисляет записи с помощью «Служба приложений», однако он также включает записи со специальными символами между словами, например «Приложение / Услуга". Мы хотим, чтобы поисковая система возвращала записи, которые точно соответствуют поисковой фразе (не включайте записи, содержащие специальные символы между условиями поиска).


person harshu288    schedule 21.02.2017    source источник


Ответы (2)


В вашем случае standard анализатор разбивает термин приложение / услуга на два отдельных термина: приложение и услуга во время индексации. Вот почему фраза «Служба приложений» соответствует документу с приложением / службой - обе версии выглядят для поисковой системы одинаково.

Если термин приложение / служба составляет все содержимое поля, вы можете проиндексировать содержимое этого поля как один токен с помощью анализатора keyword. Дополнительные сведения см. Здесь: Пользовательские анализаторы в Azure Искать.

Анализатор keyword не подойдет, если термин приложение / служба встречается как часть предложения. В этом случае вы можете заменить символ / другим символом, который не разделяется токенизатором standard, например: _. Для этого используйте фильтр символов mappping:

charFilters: [
  {
    "name":"map_char_mapping",
    "@odata.type":"#Microsoft.Azure.Search.MappingCharFilter",
    "mappings":[ "/=>_" ]
  }     
] 

Следующий пост поможет вам понять, как лексические анализаторы применяются во время поиска и индексации: Как на практике использовать анализатор ключевых слов в лазурном поиске?

person Yahnoosh    schedule 26.02.2017

В этом сценарии вы хотите проиндексировать все содержимое поля как один токен. Взгляните на Пользовательские анализаторы в Azure Поиск и, в частности, keyword анализатор.

person Eugene Shvets    schedule 21.02.2017
comment
Привет, @Eugene, спасибо за ответ, нет ли способа игнорировать записи, между которыми есть специальные символы, пользовательский анализатор не представляется возможным. - person harshu288; 22.02.2017