Python 嗖的一声有多快?

Python 嗖的一声有多快?,python,performance,whoosh,pylucene,Python,Performance,Whoosh,Pylucene,Whoosh是一个用纯Python()实现的快速、功能强大的全文索引和搜索库 但我找不到任何速度/性能与其他搜索引擎相比,尤其是基于Lucene的(pyLucene,Lupyne…) 我习惯于使用pyLucene,这是众所周知的快速但非常非pythonic且不容易处理的(DirectJavaLucene包装器)。有一个pyLucene的pythonic包装;卢平。然而,当需要Lucene的核心功能时,这并不方便 如果您在嗖嗖声和其他声音之间有任何性能提示,我们将不胜感激。{1}嗖嗖声与Xappy

Whoosh是一个用纯Python()实现的快速、功能强大的全文索引和搜索库

但我找不到任何速度/性能与其他搜索引擎相比,尤其是基于Lucene的(pyLucene,Lupyne…)

我习惯于使用pyLucene,这是众所周知的快速但非常非pythonic且不容易处理的(DirectJavaLucene包装器)。有一个pyLucene的pythonic包装;卢平。然而,当需要Lucene的核心功能时,这并不方便


如果您在嗖嗖声和其他声音之间有任何性能提示,我们将不胜感激。

{1}嗖嗖声与Xappy/Xapian的对比

Whoosh和Xappy/Xapian支持一些测试Python搜索的基准

Whoosh作者使用这些基准测试了Xappy/Xapian的Whoosh:

基准的工作原理

生成N个文档,搜索词是一个随机词,长度为10个字符,再加上10个额外字段,每个字段包含100个字符的随机内容(只是为了增加文档的大小)

对于索引,所有字段都被索引和存储

对于搜索,将按随机顺序搜索所有单词,并检索所有存储的字段

对于whoosh,我们使用了多处理编写器来构建索引-这解释了为什么它比xappy索引更快(因为它使用了所有4个内核,而不仅仅是1个)

对于搜索,xappy/xapian更快(没有使用并行处理)。 但是你可以看到,xappy和whoosh之间的速度差可能没有你想象的那么大

索引大小约为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)