14

Djangoアプリのバックエンドとしてwhooshを使用してhaystackを使用しています。

whooshによって生成されたインデックスのコンテンツを(読みやすい形式で)表示する方法はありますか?どのデータがインデックスに登録され、どのように機能するかをよりよく理解できるようにしたいと思います。

4

2 に答える 2

17

これは、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']>

インデックスに対して直接検索クエリを実行し、あらゆる種類の楽しいことを実行できます。すべてのドキュメントを取得するには、次のようにします。

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

すべてを(表示用などに)印刷したい場合は、Pythonスクリプトを使用して非常に簡単に印刷できます。

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

djangoビューでwhooshから直接ドキュメントを返すこともできます(おそらくdjangoのテンプレートシステムを使用してきれいにフォーマットするため):詳細については、whooshのドキュメントを参照してください:http://packages.python.org/Whoosh/index.html

于 2011-03-14T09:46:48.157 に答える
7
from whoosh.index import open_dir
ix = open_dir('whoosh_index')
ix.searcher().documents()  # will show all documents in the index.
于 2012-10-23T03:00:10.633 に答える