2015-03-17 16 views
5

Whoosh là một thư viện lập chỉ mục và tìm kiếm toàn văn nhanh, đầy đủ tính năng được triển khai bằng Python thuần túy (official website).Whoosh nhanh như thế nào?

Nhưng tôi không thể tìm thấy bất kỳ so sánh tốc độ/hiệu suất nào với công cụ tìm kiếm khác, đặc biệt là dựa trên Lucene (pyLucene, Lupyne ...)?

Tôi đã quen sử dụng pyLucene được biết là nhanh nhưng khá không phải là pythonic và không dễ xử lý (trình bao bọc java-Lucene trực tiếp). Có một wrapper pythonic của pyLucene; Lupyne. Tuy nhiên điều này không thuận tiện khi các tính năng cốt lõi của Lucene là cần thiết.

Bất kỳ gợi ý hiệu suất nào giữa Whoosh và các gợi ý khác sẽ được đánh giá cao.

Trả lời

5

{1} bất ngờ tới thăm vs Xappy/Xapian

Có tiêu chuẩn để thử nghiệm Python tìm kiếm hỗ trợ bởi bất ngờ tới thăm và Xappy/Xapian here.

giả bất ngờ tới thăm sử dụng những tiêu chuẩn để kiểm tra bất ngờ tới thăm chống Xappy/Xapian (ref):

Làm thế nào chuẩn làm việc

N tài liệu được tạo ra, từ tìm kiếm là một từ ngẫu nhiên và dài 10 ký tự , cộng với 10 trường bổ sung với 100 ký tự ngẫu nhiên mỗi công cụ (chỉ để bơm kích thước của tài liệu).

Để lập chỉ mục, tất cả các trường được lập chỉ mục và lưu trữ.

Để tìm kiếm, tất cả các từ được tìm kiếm theo thứ tự ngẫu nhiên và tất cả các trường được lưu sẽ được truy xuất.

Đối với whoosh, chúng tôi đã sử dụng bộ xử lý đa xử lý để xây dựng chỉ mục - điều này giải thích tại sao việc lập chỉ mục nhanh hơn xappy (vì nó sử dụng tất cả 4 lõi, không chỉ 1).

Để tìm kiếm, xappy/xapian nhanh hơn (không có xử lý song song nào được sử dụng). Nhưng bạn thấy rằng sự khác biệt tốc độ giữa xappy và whoosh có thể không lớn như bạn mong đợi.

Index Kích khoảng 12MB

# Phenom II X4 840, 8GB RAM, HDD 
# Python 2.7.2+ (default, Oct 4 2011, 20:06:09) 
# [GCC 4.6.1] on linux2 

Params: 
DOC_COUNT: 3000 WORD_LEN: 10 
EXTRA_FIELD_COUNT: 10 EXTRA_FIELD_LEN: 100 

Benchmarking: xappy 0.5/xapian 1.2.5 
Indexing takes 2.8s (1068.9/s) 
Searching takes 0.5s (6635.8/s) 

Benchmarking: whoosh 2.3.2 
Indexing takes 0.8s (3575.6/s) 
Searching takes 0.8s (3714.8/s) 
Các vấn đề liên quan