飞快指数查看器

dan*_*els 14 python whoosh django-haystack

我正在使用haystack和whoosh作为Django app的后端.

有没有办法查看whoosh生成的索引的内容(以易于阅读的格式)?我想看看哪些数据被编入索引,以及如何更好地理解它是如何工作的.

zee*_*kay 16

您可以从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']>
Run Code Online (Sandbox Code Playgroud)

您可以直接在索引上执行搜索查询,并执行各种有趣的操作.要获取每个文档,我可以这样做:

>>> from whoosh.query import Every
>>> results = ix.searcher().search(Every('content'))
Run Code Online (Sandbox Code Playgroud)

如果你想将它全部打印出来(用于查看或诸如此类),你可以使用python脚本轻松地完成它.

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

您还可以直接从django视图中的whoosh返回文档(可能使用django的模板系统进行相当格式化):有关详细信息,请参阅whoosh文档:http://packages.python.org/Whoosh/index.html.


Col*_*son 7

from whoosh.index import open_dir
ix = open_dir('whoosh_index')
ix.searcher().documents()  # will show all documents in the index.
Run Code Online (Sandbox Code Playgroud)

  • 这将返回不可订阅的生成器对象.我们如何将结果可视化? (2认同)
  • 如果您希望它可下标,您可以尝试在其上调用 list() 。 (2认同)