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

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

Пример:

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

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

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

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

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

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

8
задан SharpBarb 1 February 2012 в 21:17
поделиться