【问题标题】:Is there a pure Python Lucene?有纯 Python Lucene 吗?
【发布时间】:2010-10-01 02:23:34
【问题描述】:

红宝石人有Ferret。有人知道 Python 有什么类似的倡议吗?我们目前正在使用 PyLucene,但我想研究一下转向纯 Python 搜索。

【问题讨论】:

  • 可能不是这个问题的答案,但是 Elasticsearch 在 Lucene 之上实现了一个简单的 Web 界面,而 PyES 是 Elasticsearch 的 python 包装器。我已经很舒服地使用了 pyES,但是 Elasticsearch 中仍然缺少 Lucene 中存在的一些高级功能。
  • 顺便说一句,旧的 Ferret URL 现在重定向到 chandanweb.com/solutions/web-applications.html - 我已将 URL 替换为新的 github 页面 github.com/dbalmain/ferret :)
  • 为了访问我发现(并且正在尝试)的 Lucene 索引plush:pypi.python.org/pypi/plush/0.3.0
  • 有什么理由选择纯python?

标签: python full-text-search lucene ferret


【解决方案1】:

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

【讨论】:

  • 刚刚在一个项目中使用了 whoosh,它真的很容易使用。一点也不乱 - 刚刚工作。
  • 不幸的是,whoosh 现在似乎被抛弃了(并且有很多不好的错误)。
  • 它不适用于 >1G 数据。合并细分需要数小时
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 我来这里是为了寻找在 python 中访问 Lucene 索引的东西,我现在不太关心速度。我只是不想被束缚在 Java 上。所以感谢 pynter。
    • 最后一次发布 pyndexter 是 2007 年,不幸的是,此处提供的链接已失效。
    【解决方案4】:

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

    【讨论】:

    • 感谢您提及 Xapian。不是我现在需要的,但我一定会记住它以备后用。
    【解决方案5】:

    lupy 是纯 python 的 lucene 端口。The lupy people suggest that you use PyLucene。对不起。也许您可以结合使用 Java 源代码和Jython

    【讨论】:

    • 有趣的是,在 Lupy 被遗弃的情况下,Ferret 似乎很受赞赏和使用。
    • 好吧,PyLucene 似乎迎合了类似的社区。此外,由于 Lucene,有些人甚至准备好在 Java 中进行全文搜索;-)
    【解决方案6】:

    +1 Xapian 和 Pyndexter 的答案。

    Ferret 实际上是用 C 语言编写的,顶部带有 Ruby 绑定。纯 Ruby 搜索引擎甚至比纯 Python 搜索引擎还要慢。我很想看到“其他人”为 Ferret 的 Python 接口编写 Cython/Pyrex 层,但我自己不会这样做,因为当有用于 Xapian 的 Python 绑定时,为什么还要麻烦。

    【讨论】:

    • 谢谢。我以一种肮脏的方式使用了“纯”这个词。 =) 如果我可以用 easy_setup 之类的方式安装它,我很高兴。
    【解决方案7】:

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

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

    【讨论】:

      【解决方案8】:

      经过数周的搜索,我找到了一个不错的 Python 解决方案:repoze.catalog。它并不是严格意义上的纯 Python,因为它使用 ZODB 进行存储,但对我来说,它似乎比 SOLR 更好。

      【讨论】:

      • 我想要 Python 中的 Solr,对于像 Solr 这样的软件但用 Python 编写的结论是什么?
      猜你喜欢
      • 2023-03-31
      • 1970-01-01
      • 2017-12-22
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多