Я использую анализатор снежного кома для определения заголовков нескольких документов.Все работает хорошо, но есть свои причуды.
Пример:
Поиск по запросу «valv», «valve» или «valve» возвращает одинаковое количество результатов.Это имеет смысл, поскольку анализатор снежного кома сводит все до «valv».
У меня возникают проблемы при использовании подстановочного знака.Поиск по запросу «клапан *» или «клапаны *» не дает никаких результатов.Поиск «valv *» работает как положено.
Я понимаю, почему это происходит, но я не знаю, как это исправить.
Я подумал о том, чтобы написать анализатор, в котором хранятся токены со стеблем и без них.В основном применяются два анализатора и объединяются два потока токенов.Но я не уверен, что это практическое решение.
Я также думал об использовании AnalyzingQueryParser, но я не знаю, как применить это к многополюсному запросу.Кроме того, использование AnalyzingQueryParser будет возвращать результаты для «клапана» при поиске «клапаны *», а это не ожидаемое поведение.
Есть ли "предпочтительный" способ использования как подстановочных знаков, так и алгоритмов определения основ?