http://pythonhosted.org/Flask-WhooshAlchemy/的教程适合我。
这是我的设置
class Post(db.Model):
__tablename__ = 'post'
__searchable__ = ['body']
id = db.Column(db.Integer, primary_key=True)
body = db.Column(db.String)
结果:
如果我没有在whoosh_index()
之前放whoosh_search()
,我会收到错误消息:
AttributeError: 'BaseQuery' object has no attribute 'whoosh_search'
db.session.query(Post).filter(Post.body=='hi')
返回正确的输出。
Post.query.whooshee_search('hi')
返回空
我确实留下了一些代码,比如额外的列和背景,但我认为这不会改变任何内容
有几点需要注意:
whoosh_index()
的情况下工作正常,但我的代码丢错了
当我没有包括它时。db.session.query(Post).filter()
代码工作正常,表明我的模型至少有点正确,而且嗖的一声/我的嗖的设置有什么问题请帮忙,谢谢
答案 0 :(得分:0)
我也遇到了与Post.query.whoosh_search('post').all()
一直返回空列表相同的问题。
我发现可以使用此处指定的特定版本来解决它
https://github.com/gyllstromk/Flask-WhooshAlchemy/blob/master/requirements.txt
我使用的是以下版本:
烧瓶== 0.10.1
Flask-SQLAlchemy-2.1
Whoosh-2.7.2
blinker-1.4
我 将 替换为:
**Flask==0.10.1**
**Flask-SQLAlchemy==1.0**
**Whoosh==2.6.0**
**blinker==1.3**
一旦找到确切的哪个升级导致此问题及其原因,我将在此处更新。