Usando uma combinação de caracteres curinga e stemming

Estou usando um analisador de bolas de neve para conter os títulos de vários documentos. Tudo funciona bem, mas há algumas peculiaridade

Exemplo

Uma pesquisa por "valv", "válvula" ou "válvulas" retorna o mesmo número de resultados. Isso faz sentido, pois o analisador de bolas de neve reduz tudo para "valv".

Tenho problemas ao usar um curinga. Uma pesquisa por "válvula *" ou "válvulas *" não retorna nenhum resultado. A pesquisa por "valv *" funciona conforme o esperado.

Entendo por que isso está acontecendo, mas não sei como corrigi-l

Pensei em escrever um analisador que armazena os tokens com e sem haste. Aplicando basicamente dois analisadores e combinando os dois fluxos de token. Mas não tenho certeza se essa é uma solução prática.

Também pensei em usar o AnalyzingQueryParser, mas não sei como aplicar isso a uma consulta de vários campos. Além disso, o uso do AnalyzingQueryParser retornaria resultados para "válvula" ao pesquisar "válvulas *" e esse não é o comportamento esperad

Existe uma maneira "preferida" de utilizar curingas e algoritmos de derivaçã

questionAnswers(8)

yourAnswerToTheQuestion