#713: Не ищутся статьи по неполному слову и с определенными окончаниями

Отредактирована: 307 дней назад

Вопрос

  • По тексту вроде сходится "устранение" - есть "устранена", проблема в форме слова?
  • Если ввести неполное слово, например без окончания, выборка будет пуста.
  • При этом с одним неполным словом ("резервн") удалось получить выборку.
  • Поиск строго завязан на склонении.

Ответ

Для поиска в KCS виджете мы используем 3rd-party полнотекстовый PostgreSQL движок. Одна из его особенностей заключается в том, что слова приводятся к базовой форме (то есть выполняется лемматизация): "дома" - "дом"

Лемматизация происходит по подключенным языковым словарям.

В связи с этим, не поддерживается поиск по частям слов. Это объясняет, почему по "резервн" выдается 0 результатов, а так же почему не ищется "Настройка Bin" (bin и резервн неполные слова, которые не ищут в словарях).

Такая же ситуация будет, когда ищутся, например, какие-то команды и они записаны неполностью. В таких случаях лучше использовать кавычки, тогда статья находится:

Что касается разного количества выдаваемых результатов при поисках, то есть несколько возможных причин:

Лемматизация работает по-разному, т.е.форма слова может быть по-разному интерпретирована, например, единственное и множественное число (резервнУЮ и резервнЫЕ).

Отсутствие слова в словаре, т.е. PostgreSQL не распознаёт все формы.

Во втором случае, когда не находится слово в словаре, оно ищет вхождения as is, то есть только статьи с окончанием "резервнУЮ".

Судя по тестам, в данном случае это как раз является причиной, слово отсутствует в словаре: результаты поиска "резервная", "резервный", "резервные" и "резервную" - они все разные.При поиске используется метод, который НЕ работает с логическими операторами и префиксным поиском.

В общем случае, движок предлагает разные способа поиска, используемый в Swarmica похож на обычный пользовательский поиск, что коррелирует с принципом KCS описывать проблему словами клиента.

Альтернатива

На тарифе Премиум доступен также нейропоиск с помощью ИИ. Этот поиск уже может учитывать большие фразы и куски текста, подставлять синонимы, склонения, различные окончания, суммаризировать текст и т.д.