2014-04-14 94 views
2

教程http://pythonhosted.org/Flask-WhooshAlchemy/適合我。whoosh_search()返回空

這裏是我的設置

class Post(db.Model): 
    __tablename__ = 'post' 
    __searchable__ = ['body'] 

    id = db.Column(db.Integer, primary_key=True) 
    body = db.Column(db.String) 

結果:

如果我不whoosh_search()之前把whoosh_index(),我得到的錯誤: AttributeError: 'BaseQuery' object has no attribute 'whoosh_search'

db.session.query(Post).filter(Post.body=='hi')返回正確的輸出。 Post.query.whooshee_search('hi')返回空

我也離開了一些代碼,比如額外的列和backrefs,但我不認爲改變任何東西

這裏有幾點需要注意:

  • 教程工作罰款沒有whoosh_index(),但我的代碼投擲錯誤 時,我沒有包括它。
  • db.session.query(Post).filter()代碼工作得很好,這說明我的模型是至少在某種程度上是正確的,並沒有什麼問題嗖/我嗖的設置

請幫幫忙,謝謝

+0

我也遇到同樣的錯誤。這有什麼進展? – user805981

+0

@onepiece不能僅僅因爲你對未被索引(預先創建)的帖子執行'whoosh_search'? – mannaia

回答

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** 

我會在這裏更新,一旦我找到確切的升級導致這個問題,爲什麼。