Python文件索引和搜索

时间:2009-02-10 13:27:29

标签: python search indexing lucene

我有一个大的启动文件(hdf),我需要启用搜索。对于Java,我会使用Lucene,因为它是一个文件和文档索引引擎。我不知道python的等价物是什么。

任何人都可以推荐我应该使用哪个库来索引大量文件以进行快速搜索?或者是推出自己的首选方式?

我查看了pylucenelupy,但这两个项目似乎都处于非活动状态且不受支持,因此我不确定是否应该依赖它们。

最后的说明: Woosh和pylucene看起来很有希望,但是woosh仍然是alpha,所以我不确定我是否依赖它,我在编译pylucene时遇到了问题,而且没有实际的释放。在我对数据进行了更多研究之后,它主要是数字和默认文本字符串,所以现在关闭索引引擎对我没用。希望这些图书馆能够稳定下来,以后访问者会发现它们有用处。

5 个答案:

答案 0 :(得分:9)

Lupy has been retired和开发人员推荐使用PyLucene。至于PyLucene,它的邮件列表活动可能很少,但它肯定是支持的。事实上,它最近刚成为official apache subproject

您可能还想查看一个新的竞争者:Whoosh。它与lucene类似,但是在纯python中实现。

答案 1 :(得分:5)

我之前没有做过索引,但以下内容可能会有所帮助: -

  1. pyIndex - http://rgaucher.info/beta/pyIndex/ - Python的文件索引库
  2. http://www.xml.com/pub/a/ws/2003/05/13/email.html - 这是一个使用Python和Lucene
  3. 搜索Outlook电子邮件的脚本
  4. http://gadfly.sourceforge.net/ - Aaron water的gadfly数据库(我想你可以用这个来编制索引。我自己没用过。)
  5. 就使用HDF文件而言,我听说过一个名为h5py的模块。

    我希望这会有所帮助。

答案 2 :(得分:4)

我建议Sphinx。它非常活跃,功能更多,看起来比Lucene更快。

答案 3 :(得分:2)

一种常用于Python的流行的基于C ++的信息检索库是Xapian http://xapian.org/

它非常快,可以愉快地管理大量数据,但它不像Lucene那样容易扩展。

答案 4 :(得分:0)

弹性搜索可用于为文档建立索引并通过关键字进行搜索
Elasticsearch也可以与图db和hadoop集成 下面的一些网址:
1)https://www.elastic.co/products/elasticsearch
2)https://towardsdatascience.com/getting-started-with-elasticsearch-in-python-c3598e718380