Защищён ли поиск в Discourse от опечаток и как он работает с несколькими словами?

Например, найдет ли поисковая система Discourse «John Max Dolittle» по следующим запросам:

  • hohn <== опечатка
  • john dolittle <== пропущенная часть строки
  • john mx doelitle <== нечеткий поиск

Меня об этом предупредил этот пост: Discourse search is awfully unsmart!
Но он довольно старый (2017 год). Улучшилась ли ситуация с тех пор?

Кажется, что плагин Algolia больше не является официальным?

Поиск на основе ИИ устойчив к опечаткам, но работает не быстро:

Однако используемая техника означает, что процесс немного замедлен, поскольку нам необходимо расширить термин с помощью LLM перед поиском сходства.

Общий поиск использует стемминг по алгоритму Snowball: Snowball Stemmer - NLP - GeeksforGeeks

Это позволяет выявлять некоторые опечатки как побочный эффект, но на самом деле это именно побочный эффект: мы не используем Metaphone или другие сложные методы устранения опечаток, в PostgreSQL нет встроенного простого решения для этого.

Плагин Algolia по-прежнему поддерживается и является официальным: Discourse Algolia Search

Кстати, плагин поиска Algolia всё ещё #официальный :+1:

(Если вы размещены у нас, он доступен в планах Enterprise)