目前,我正在运行以下代码:
User.query.filter(or_(User.username.contains(query), User.name.contains(query)))
但很自然地,当您点击几百万条记录并搜索多列时,LIKE "%query%"
开始变得昂贵。 Whoosh
严重过时,sqlalchemy-fulltext-search
似乎不想使用我的Flask结构。除了切换到PostgreSQL
之外,我还有其他选择吗?
答案 0 :(得分:0)
Flask_sqlalchemy
是您的ORM而不是您的DBMS。您可以将与 PostgreSQL一起用作数据库。
如何查询数据库对您而言至关重要。
SQLAlchemy
允许您执行原始SQL
命令,这样您就可以自己编写查询命令,而不是使用Model.query.filter()
。
因此,一种选择是自己更有效地编写select expressions
。
弹性搜索抽象出许多有效的算法供您使用! 您可以依靠elasticsearch来搜索数据库。