【问题标题】:Full text search engine for Python [closed]Python的全文搜索引擎
【发布时间】:2011-05-16 21:48:55
【问题描述】:

我正在寻找一个 Python 全文搜索引擎。

我看了 PyLucense,但我认为在 Python 项目中使用基于 Java 的库并不好。据我了解,Sphinx 没有 Python API。

有什么想法吗?

【问题讨论】:

    标签: python sqlite full-text-search sqlalchemy pylons


    【解决方案1】:

    你看过Whoosh吗?它是纯 Python。

    【讨论】:

    • 只是想我会提到这一点..我最近尝试使用 whoosh 对 150 万行输入数据进行索引..而 whoosh 非常易于安装和运行..对于较小的索引它工作得足够快对我来说,我的索引大小很慢:15 秒内有 1000 个搜索结果..它可能对较小的索引大小有好处
    【解决方案2】:

    “Sphinx 没有 Python API”

    不正确。下载发布并查看sphinx/api/sphinxapi.py

    我自己使用它,我很满意。该文档仅适用于 PHP,但 Python API 对所有函数使用完全相同的名称。

    【讨论】:

      【解决方案3】:

      我会推荐嗖嗖声。您可以轻松安装它,即easy_install Whoosh 它也有一个简洁的 API

      【讨论】:

        【解决方案4】:

        Apache Solr 基于 Lucene,并为其搜索功能提供 REST/HTTP 接口,因此您没有平台锁定或语言问题。 IMO 它是迄今为止最好的搜索服务器,具有比您希望的更多的功能和活跃的社区来支持它。

        【讨论】:

        • 我是一个 Python 人,甚至维护一个 Python SQLite 包装器 (APSW)。对于一些工作,我也使用 Solr。配置是 PITA,但搜索结果非常棒。您可以将它们以 JSON 格式取回,这让生活变得轻松。您必须通过令人讨厌的 XML 创建内容。 SQLite 的 FTS3 也不错,但远没有那么灵活。例如,在 SOLR 中词干和变音位是微不足道的,但在 FTS3 中非常困难。
        【解决方案5】:

        您是否尝试过 sqlite 的 FTS 功能?您使用了 sqlite 标签,但我在您的问题中没有看到 sqlite 的提及。

        【讨论】:

        • 不,我没试过。 SQLAlchemy 不支持 SQLite 搜索,我不想使用 plait SQL 语法。
        【解决方案6】:

        特别是对于全文搜索,Solr 是一个很好的选择。您将很难找到更广泛使用和更开放的选择。我们在我的公司使用 Solr/Lucene,将 PHP Web 应用程序作为客户端,使用 HTTP/REST API 来查询索引。它具有与原生 PHP 客户端一样多的功能,并且开箱即用具有更大的灵活性。您可以使用 REST API 执行您选择的所有查询/过滤器。但是,最重要的是,您将获得一个性能极好且使用广泛的搜索系统,该系统具有不断改进的内置复制功能。强烈推荐 Solr 1.4.x 作为您的起点。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-01-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-13
          • 2010-09-22
          • 2013-06-25
          • 1970-01-01
          相关资源
          最近更新 更多