Используя комбинацию подстановочных знаков и стемминга

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

Пример:

Поиск по «valv», «valve» или «valve» возвращает одинаковое количество результатов. Это имеет смысл, поскольку анализатор снежного кома сводит все до «valv».

Я сталкиваюсь с проблемами при использовании подстановочного знака. Поиск по запросу «клапан *» или «клапаны *» не дает никаких результатов. Поиск «valv *» работает как положено.

Я понимаю, почему это происходит, но я не знаю, как это исправить.

Я подумал о том, чтобы написать анализатор, в котором будут храниться жетоны со стеблем и без них. В основном применяются два анализатора и объединяются два потока токенов. Но я не уверен, что это практическое решение.

Я также думал об использовании AnalyzingQueryParser, но я не знаю, как применить это к многополюсному запросу. Кроме того, использование AnalyzingQueryParser будет возвращать результаты для «клапана» при поиске «клапаны *», а это не ожидаемое поведение.

Есть ли «предпочтительный» способ использования как подстановочных знаков, так и алгоритмов стволовых символов?

Ответы на вопрос(4)

Ваш ответ на вопрос