2010-03-07 16 views
12

Estoy usando haystack con whoosh como back-end para una aplicación de Django.whoosh index viewer

¿Hay alguna manera de ver el contenido (en un formato fácil de leer) de los índices generados por whoosh? Me gustaría ver qué datos se indexaron y cómo puedo entender mejor cómo funciona.

Respuesta

12

Usted puede hacer esto con bastante facilidad desde la consola interactiva de Python:

>>> from whoosh.index import open_dir 
>>> ix = open_dir('whoosh_index') 
>>> ix.schema 
<<< <Schema: ['author', 'author_exact', 'content', 'django_ct', 'django_id', 'id', 'lexer', 'lexer_exact', 'published', 'published_exact']> 

Puede realizar consultas de búsqueda directamente en su índice y hacer todo tipo de cosas divertidas. Para obtener todos los documentos que podía hacer esto:

>>> from whoosh.query import Every 
>>> results = ix.searcher().search(Every('content')) 

Si desea imprimir todo hacia fuera (para ver o lo que sea), usted podría hacerlo con bastante facilidad utilizando un script en Python.

for result in results: 
    print "Rank: %s Id: %s Author: %s" % (result.rank, result['id'], result['author']) 
    print "Content:" 
    print result['content'] 

También puede devolver los documentos directamente de zumbido en una vista de Django (para el formato bonita utilizando el sistema de plantillas de Django tal vez): Consulte la documentación zas para más información: http://packages.python.org/Whoosh/index.html.

5
from whoosh.index import open_dir 
ix = open_dir('whoosh_index') 
ix.searcher().documents() # will show all documents in the index. 
+0

Esto devuelve un objeto generador que no es subscripble. ¿Cómo visualizamos los resultados? –

+0

Puede intentar llamar a list() si quiere que sea subscripible. –