Utilizando una combinación de comodines y derivación

Estoy usando un analizador de bolas de nieve para detener los títulos de varios documentos. Todo funciona bien, pero hay algunas peculiaridades.

Ejemplo

Una búsqueda de "valv", "válvula" o "válvulas" devuelve el mismo número de resultados. Esto tiene sentido ya que el analizador de bolas de nieve reduce todo a "valv".

Me encuentro con problemas al usar un comodín. La búsqueda de "válvula *" o "válvulas *" no arroja ningún resultado. La búsqueda de "valv *" funciona como se esperaba.

Entiendo por qué sucede esto, pero no sé cómo solucionarlo.

Pensé en escribir un analizador que almacene los tokens con y sin raíz. Básicamente aplicando dos analizadores y combinando los dos flujos de tokens. Pero no estoy seguro de si esta es una solución práctica.

También pensé en usar AnalyzingQueryParser, pero no sé cómo aplicar esto a una consulta de campo múltiple. Además, el uso de AnalyzingQueryParser devolvería resultados para "válvula" al buscar "válvulas *" y ese no es el comportamiento esperado.

Existe una forma "preferida" de utilizar comodines y algoritmos derivados?

Respuestas a la pregunta(8)

Su respuesta a la pregunta