approxmatch

Назначение

Функция используется для нечеткого поиска фраз.

Синтаксис

approxmatch(аргумент)

Аргументы

Функция принимает один обязательный аргумент.

Функция также принимает следующие опциональные именованные параметры:

  • order:=yes/no задает поиск с учетом/без учета порядка следования токенов в исходной фразе. Значение по умолчанию - no.

  • skip_pos позволяет пропускать указанные части речи внутри аргумента.

  • sentence:=yes/no задает поиск в пределах предложения. Значение по умолчанию — no.

  • max_distance задает максимальное расстояние от первого до последнего токена.

  • skip_class позволяет указать название вордкласса или класса стоп-слов (skip_class:=stop), которые игнорируются при поиске.

  • skip_words позволяет указать слова, которые игнорируются при поиске.

  • unique:=yes|no поиск уникальных или неуникальных токенов. Значение по умолчанию — no.

  • match:=range позволяет извлекать фрагмент текста от первого до последнего найденного аргумента.

Возвращаемое значение

Документы, соответствующие запросу.

Примеры

approxmatch("хороший сервис", sentence:=yes, max_distance:=3) находит слова «хороший» и «сервис» в пределах предложения на максимальном расстоянии 3 токенов друг от друга, например, «В магазине хороший сервис», «Ресторан порадовал нас хорошим сервисом», но не находит «Сервис в ресторане хороший».

approxmatch("спутниковая связь", max_distance:=5) находит слова «спутниковый» и «связь» на максимальном расстоянии пяти токенов друг от друга, например, «Спутниковая система связи и вещания», «Под спутниковой сетью связи», «в течение 10 лет объем рынка спутниковой связи вырастет».

singleroot(approxmatch("спутниковая связь", max_distance:=5)) находит слова «спутниковый» и «связь» и их производные на максимальном расстоянии пяти токенов друг от друга, например, «Спутниковая система связи и вещания», «Под спутниковой сетью связи», «в течение 10 лет объем рынка спутниковой связи вырастет», «Связь, реализуемая при помощи спутников», «Первый российский спутник связи».