全文搜索和Python

时间:2012-02-07 18:15:58

标签: python mysql lucene full-text-search

有人可以帮我解决一些支持Python的全文搜索引擎吗?

现在我们有一个MySQL数据库,我想添加一个全文搜索引擎索引这个数据库的某些表中的一些文本的能力。 Web应用程序将使用此文本数据来搜索数据库中的相应记录。例如,索引客户表中的客户名称信息,使用Web应用程序进行全文搜索,以获取客户的MySQL记录。

我(简要地)看过Lucene,Swish-E和MongoDB以及其他一些人,但是我不确定在考虑几件事情时对我来说什么是好的选择:

  • 我不是一个Java人(虽然我已经编程了很长时间),
  • 我们只想搜索相对较小的数据集,
  • 我们希望在MySQL数据库中索引文本,
  • 并希望以半实时方式更新该索引。

任何提示,提示或指示都将不胜感激!

3 个答案:

答案 0 :(得分:4)

看看Whoosh。我听说它不能很好地扩展(也许现在已经修复)但是对于小型集合,它可能很有用。

对于可扩展的解决方案,请考虑将Lucene与PyLucene或Jython一起使用。

答案 1 :(得分:0)

几个月前建造pylucene是我经历过的最痛苦的经历之一。如果它很难建造,该项目将不会获得任何牵引力。

由于其他一些人有同样的痒,我们开始https://code.google.com/a/apache-extras.org/p/pylucene-extra/在几个操作系统,Python版本和Java运行时组合上收集预构建的pylucene和jcc egg。不过最近它并不是很活跃。

哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇/ p>

或者尝试通过python(有一些API)访问Sphinx,这可能比使用pylucene容易得多。当然,请考虑lucene仍然需要运行JVM。

由于您没有巨大的可扩展性需求,我将专注于简单的使用和社区支持,而不是性能和规模。希望它有所帮助。

答案 2 :(得分:0)

Solr是Lucene的一个很好的包装器,它大大简化了事情。对于大多数事情,它不需要任何Java修补,您只需要配置一些XML文件。它确实作为另一个进程运行,因此这可能会使您的部署复杂化。

我使用pysolr获得了很好的结果,但实际上,您可以编写自己的python通信库,因为Solr使用REST,因此在xml或json中发送和检索数据非常简单。