¿Cómo utilizar n-gramas de coincidencia aproximada con Solr?

Tenemos una base de datos de películas y series, y como los datos provienen de muchas fuentes de confiabilidad variable, nos gustaría poder hacer coincidencias de cadenas difusas en los títulos de los episodios. Estamos utilizando Solr para buscar en nuestra aplicación, pero los mecanismos de coincidencia predeterminados funcionan en niveles de palabras, lo que no es suficiente para cadenas cortas, como títulos

En el pasado, había usado n-gramas de concordancia aproximada, y estaba muy feliz de encontrar que Lucene (y Solr) apoyan algo así fuera de la caja. Desafortunadamente, no he podido configurarlo correctamente.

Asumí que necesito un tipo de campo especial para esto, así que agregué el siguiente tipo de campo a mi schema.xml:

<fieldType 
   name="trigrams" 
   stored="true" 
   class="solr.StrField"> 
 <analyzer type="index"> 
   <tokenizer 
       class="solr.analysis.NGramTokenizerFactory" 
       minGramSize="3" 
       maxGramSize="5" 
       /> 
   <filter class="solr.LowerCaseFilterFactory"/> 
 </analyzer> 
</fieldType> 

y cambió el campo apropiado en el esquema a:

<field name="title" type="trigrams" 
    indexed="true" stored="true" multiValued="false" /> 

Sin embargo, esto no está funcionando como esperaba. El análisis de la consulta parece correcto, pero no obtengo ningún resultado, lo que me hace creer que algo sucede en el momento del índice (es decir, el título se indexa como un campo de cadena predeterminado en lugar de un campo de trigrama).

La consulta que estoy tratando es algo como

title:"guy walks into a psychiatrist office"

(con un error tipográfico o dos) y debe coincidir con "Guy Walks en una oficina de psiquiatras".

(No estoy realmente seguro de si la consulta es correcta).

Además, me gustaría poder hacer algo más de hecho. Me gustaría hacer un seguimiento de la cadena, eliminar todos los signos de puntuación y espacios, eliminar las palabras en inglés y luego cambiar la cadena en trigramas. Sin embargo, los filtros se aplican solo después de que la cadena haya sido tokenizada ...

Gracias de antemano por sus respuestas.