¿Cómo hago una coincidencia de campo parcial con Haystack?

Necesitaba una herramienta de búsqueda simple para mi sitio web con django, así que fui con Haystack y Solr. He configurado todo correctamente y puedo encontrar los resultados de búsqueda correctos cuando escribo elexacto frase, pero no puedo obtener ningún resultado al escribir una frase parcial.

Por ejemplo: "John" devuelve "John Doe" pero "Joh" no devuelve nada.

Modelo:

class Person(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)

Índice de búsqueda:

class PersonIndex(SearchIndex):
    text = CharField(document=True, use_template=True)
    first_name = CharField(model_attr = 'first_name')
    last_name = CharField(model_attr = 'last_name')

site.register(Person, PersonIndex)

Supongo que me falta alguna configuración que permita la coincidencia parcial de campos. He visto gente hablando deEdgeNGramFilterFactory() en algunos foros, y lo busqué en Google, pero no estoy muy seguro de su implementación. Además, esperaba que hubiera una manera específica de hacerlo en caso de que alguna vez cambie el backend de búsqueda.

Respuestas a la pregunta(5)

Su respuesta a la pregunta