我正在寻求实施(像啤酒一样免费)在Heroku上的一个小应用程序(用户数量最少,Limited数据集)上搜索全文。但是,我正在努力寻找最佳的模式,一种选择是使用Xeround的10MB限制,而它可以持续(我们可能会在不久的将来超过此),第二个是以某种方式滚动我自己的全文搜索在MongoDB或CouchDB上。

本应用程序中的文档是我希望从邮件列表中搜索的归档电子邮件,大约有10k此类电子邮件,纯文本,大约700 bot。

我更喜欢模糊的搜索功能,从而推动Whoosh的推动。

在我的要求中(我应该之前提到过,是为了 自由的!)

我还没有在Python的烧瓶应用程序中找到与MongoDB一起使用Whoosh的任何模式。

谁能提供有关如何在小型Heroku Python应用程序中处理全文搜索的更多信息?

有帮助吗?

解决方案

所以我没有尝试过,但是 http://tenderlove.github.com/texticle/ 似乎暗示您可以使用本机PGSQL FullText搜索,如果您可以安装在空间限制范围内。 Whoosh的麻烦在于,您将遇到磁盘空间及其在Heroku规则中的持久性问题。

另一件事是与Dev Docs建议的添加ONS合作:http://devcenter.heroku.com/articles/full-text-search

至于模式,您基本上必须进行完整搜索并获取记录的数据/ID,然后根据FullText结果查询您的数据存储(Mongo)对完整数据集进行查询。这是一个手动过程,但没有什么太奇怪了。如果搜索不需要完整的记录,您通常可以使用全文信息藏匿重要的数据,但这会增加完整文本索引的大小。

其他提示

Pysolr 解决您的问题。

您是否考虑过使用Apache Solr?我认为这是自由文本搜索引擎的最佳解决方案,它是免费和开源的。

要使用Python的Solr,我建议您 迈索尔 图书馆。比Pysolr更快,更易于使用(您可以看到一些统计数据 这里)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top