红宝石人有Ferret。有人知道Python的任何类似举措吗?我们目前正在使用PyLucene,但我想研究转向纯Python搜索。
答案 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更能依赖我。