Требуемое количество символов в лазурном поиске - PullRequest
0 голосов
/ 05 июня 2018

Я создал службу поиска Azure, и она работает.Я хотел бы, чтобы пользователи могли выполнять поиск с 3 и более символами.У меня есть следующие тексты в разных документах:

  1. Парацет 200 мг
  2. Парацет 150 мг
  3. Кодеин / парацетамол SA

Когда я ищудля 'par' я не получаю результатов.Я должен ввести 5 символов (parac), и я получаю 1 и 2 в результате.Я хочу этот результат и для «номинала».Это возможно?Я не могу найти ничего в документации по настройке необходимого количества символов для поиска.

1 Ответ

0 голосов
/ 09 июня 2018

Для достижения максимальной производительности вы можете включить «быстрый» анализатор префиксов в своем индексе, который будет разбивать каждый токен на список префиксов во время индексации.Вот некоторая дополнительная информация о том, как это сделать: https://azure.microsoft.com/en-us/blog/custom-analyzers-in-azure-search/

Это потребует от вас повторной индексации данных, поэтому, если вы создаете новый индекс, это вариант.

Если переиндексация не является опцией, вместо этого вы можете использовать суффиксную операцию '*' в своем запросе.Вот дополнительная информация о суффиксном операторе: https://docs.microsoft.com/en-us/rest/api/searchservice/Simple-query-syntax-in-Azure-Search?redirectedfrom=MSDN

Я подозреваю, что поиск с использованием суффиксного оператора (или переиндексация при использовании быстрого префиксного анализатора) также будет работать с третьим документом, который вы перечислили (Kodein / paracetamol SA),Если он все еще не работает, это может быть связано с тем, что вы используете токенизатор, который не разделяется на символ «/».Анализатор по умолчанию должен правильно разделяться на '/', но если вы используете собственный анализатор, возможно, что все выражение "Кодеин / парацетамол" будет токенизировано в один термин, что объясняет, почему поиск parace * не возвращает документ, поскольку префикс документа «kode…».

...