Python 用金字塔框架进行搜索

Python 用金字塔框架进行搜索,python,full-text-search,sqlalchemy,pyramid,Python,Full Text Search,Sqlalchemy,Pyramid,我正在尝试在我的网站上实现一个搜索功能,这是在金字塔上运行的,我想知道解决这个问题的最有效的方法是什么。我目前正在调查和研究。我需要一个快速而简单的实现,不知道哪一个是最好的选择。我是ElasticSearch的超级粉丝。它是最容易设置、维护和使用的 我通常使用请求 索引: requests.put("http://localhost:9200/myindex/category/",data=json.dumps(document)) 要搜索: requests.get("http://loc

我正在尝试在我的网站上实现一个搜索功能,这是在金字塔上运行的,我想知道解决这个问题的最有效的方法是什么。我目前正在调查和研究。我需要一个快速而简单的实现,不知道哪一个是最好的选择。

我是ElasticSearch的超级粉丝。它是最容易设置、维护和使用的

我通常使用请求

索引:

requests.put("http://localhost:9200/myindex/category/",data=json.dumps(document))
要搜索:

requests.get("http://localhost:9200/myindex/category/_search?q="+somequery)
您可以使用DSL进行更深入的搜索:


有一段时间,我尝试在本机数据库中使用全文,但要在sqlite、mysql和pgsql之间保持正常工作,工作量太大了。我把所有的搜索代码移植到了whoosh,从那以后我一直很开心。它在较小的工作负载下运行良好,是纯python的,并且没有需要设置的服务器

您只需实现它,就像在磁盘上写入和更新文件一样。据我所知,它在数百万个文档中表现出色。我将它用于索引大小约为100MB的18k文档。使用它可以灵活地实现各种标记化和其他配置。我真的建议人们从那里开始,如果他们长出了呼呼声,那么看看用elasticsearch、lucene/solr等启动额外的过程

您可以在这里看到我是如何实现它的:

我使用SqlAlchemy事件挂钩更新它:

您可以通过搜索来判断它的基本实现:


尽管我最终选择了ElasticSearch,但您的回答在提供深刻的知识方面是最有用的。谢谢