Анализаторы текста (наследуют класс nc_search_language_analyzer) отвечают за приведение слов к базовой форме.
По умолчанию для морфологического анализа русского и английского языков используется библиотека phpMorphy (http://phpmorphy.sf.net/).
Библиотека также имеет словари для украинского, эстонского, немецкого языков (не поставляются с NetCat). Для этих языков необходимо скачать соответствующие UTF-8 словари с сайта phpMorphy, поместить их в папку modules/search/lib/3rdparty/phpmorphy/dicts/, и добавить запись на вкладке «Настройки» — «Расширения» (интерфейс расширения — nc_search_language_analyzer, класс расширения — nc_search_language_analyzer_morphy, язык — Ukrainian, Estonian или German).
Примечание: словари phpMorphy для работы с модулем поиска должны иметь расширение с повторяющимся кодом языка вместо кода страны («uk_uk.bin», а не «uk_ua.bin», «et_et.bin» вместо «et_ee.bin»).
В комплекте поставки модуля поиска имеются стеммеры для русского и английского языков. Стеммеры представляют собой алгоритм, определяющий корень слова. Данный способ является гораздо менее точным, чем морфологический анализ, но требует меньше ресурсов сервера. Вы можете использовать стемминг вместо морфологического анализа в тех случаях, когда существует необходимость уменьшить нагрузку на процессор и время, необходимое для индексирования документов. Для использования стемминга вместо морфологического анализа:
nc_search_language_analyzer_morphy для языка с кодом en.nc_search_language_analyzer_morphy на nc_search_language_analyzer_stemmer_en и сохраните настройки.nc_search_language_analyzer_morphy для языка с кодом ru (класс стеммера — nc_search_language_analyzer_stemmer_ru).
Для создания собственного стеммера можно создать класс, наследующий nc_search_language_stemmer, в этом случае необходимо реализовать только метод stem(string $word).
Примечание: на вход анализатору (при настройках по умолчанию) попадают слова в верхнем регистре, в том же регистре должен быть результат выполнения обработки текста анализатором.