【发布时间】:2020-05-25 15:51:41
【问题描述】:
我有 2 个带有索引的大型 postgres 表,以便我可以对每个表执行全文搜索。 通常,它们看起来像:
class Post_1(db.Model):
query_class = PostQuery
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String)
content = db.Column(db.Text)
datestamp = db.Column(db.Float)
search_vector = db.Column(TSVectorType('title', 'content'))
和
class Post_2(db.Model):
query_class = PostQuery
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String)
content = db.Column(db.Text)
datestamp = db.Column(db.Float)
search_vector = db.Column(TSVectorType('title', 'content'))
在我的烧瓶应用程序中,要获取其中一个表中具有特定关键字的文档,我会这样做:
Post_1.query.search(keyword).\
order_by(Post_1.datestamp.desc()).limit(1)
由于我想在两个表上同时运行相同的搜索,我想使用flask-executor并编写了以下代码:
from flask_executor import Executor
executor = Executor(app)
futures=[]
keyword = "covid"
future=executor.submit(Post_1.query.search(keyword).\
order_by(Post_1.datestamp.desc()).limit(1))
futures.append(future)
future = executor.submit(Post_2.query.search(keyword).\
order_by(Post_2.datestamp.desc()).limit(1))
futures.append(future)
这不起作用,我收到以下错误: RuntimeError:当请求上下文在堆栈上时,此装饰器只能在本地范围内使用。例如在视图函数中。
谁能帮帮我?
【问题讨论】:
标签: flask sqlalchemy