2010-03-07 21 views
12

Tôi đang sử dụng haystack với whoosh làm phụ trợ cho ứng dụng Django.Trình xem chỉ mục Whoosh

Có cách nào để xem nội dung (theo định dạng dễ đọc) của các chỉ mục được tạo bởi whoosh không? Tôi muốn xem dữ liệu nào đã được lập chỉ mục và làm cách nào để tôi có thể hiểu rõ hơn về cách thức hoạt động của dữ liệu.

Trả lời

12

Bạn có thể làm được điều này khá dễ dàng từ giao diện điều khiển tương tác của 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']> 

Bạn có thể thực hiện truy vấn tìm kiếm trực tiếp trên chỉ số của bạn và làm tất cả các loại công cụ thú vị. Để có được tất cả các tài liệu tôi có thể làm điều này:

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

Nếu bạn muốn in nó tất cả ra (để xem hoặc không có điều gì), bạn có thể làm như vậy khá dễ dàng sử dụng một kịch bản python.

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

Bạn cũng có thể trả lại tài liệu trực tiếp từ bất ngờ tới thăm trong một cái nhìn django (đối với định dạng khá sử dụng hệ thống mẫu django của lẽ): Tham khảo tài liệu bất ngờ tới thăm để biết thêm: 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

Điều này trả về đối tượng trình tạo không thể ghi lại được. Làm cách nào để chúng tôi hình dung kết quả? –

+0

Bạn có thể thử gọi danh sách() trên đó nếu bạn muốn nó có thể ghi được. –

Các vấn đề liên quan