有纯Python Lucene吗?

时间:2009-01-13 08:24:28

标签: python full-text-search lucene ferret

红宝石人有Ferret。有人知道Python的任何类似举措吗?我们目前正在使用PyLucene,但我想研究转向纯Python搜索。

8 个答案:

答案 0 :(得分:35)

Whoosh是一个类似于lucene的新项目,但它是纯粹的python。

答案 1 :(得分:6)

我所知道的唯一一个pure-python(不涉及C扩展)搜索解决方案是Nucular。它很慢(比PyLucene慢得多)而且还不稳定。

我们从基于PyLucene的家庭烘焙搜索和索引转移到Solr但是YMMV。

答案 2 :(得分:4)

我最近找到了pyndexter。它为各种不同的后端全文搜索引擎/索引器提供抽象接口。它附带一个默认的纯python实现。

但在Python中,这些事情可能会非常缓慢。

答案 3 :(得分:3)

对于某些应用程序,纯Python被高估了。看看Xapian。

答案 4 :(得分:2)

lupy是纯python的lucene端口。The lupy people suggest that you use PyLucene。抱歉。也许您可以将Java源与Jython结合使用。

答案 5 :(得分:2)

+1给Xapian和Pyndexter答案。

Ferret实际上是用C编写的,顶部是Ruby绑定。纯Ruby搜索引擎甚至比纯Python搜索引擎更慢。我很乐意看到“别人”为Ferret编写一个Python接口的Cython / Pyrex层,但是我自己也不会这样做,因为当Xapian有Python绑定时为什么会这么烦。

答案 6 :(得分:2)

对于非纯Python,使用Python API的Sphinx Search工作速度最快。从多个博客的基准测试来看,Sphinx Search比Lucene更快,使用的内存更少,而且是C语言。

我正在开发一个基于它的多文档搜索引擎,使用python和web2py作为框架。

答案 7 :(得分:1)

经过数周的搜索,我找到了一个不错的Python解决方案:repoze.catalog。它不仅仅是Python,因为它使用ZODB进行存储,但它似乎比SOLR更能依赖我。