설정을 다시 만들었습니다. 당신이 요청해야
>>> Post.query.whoosh_search('fourth not').all()
>>> [<Post u'not my fourth'>, <Post u'my fourth and last post'>]
질문 : 왜 찾을 whoosh_search 수없는 이유는 무엇입니까? 이 시도.
>>> Post.query.whoosh_search('not').all()
>>> []
이 게시물은 '제 4 번째가 아닌'게시물을 반환했을 것입니다. 맞습니까?
this document의 "Stop Words"섹션에 따르면 "Stop"단어는 흔히 사용되는 단어로 색인을 생성하는 데 종종 비생산적인 단어입니다. This question에는 기본적으로 'not'이 중지 단어이고 whoosh_search가 색인을 생성하지 않음을 보여주는 링크가 있습니다.
그래서 '치즈'에 대해 '제 4'와 덜 일반적인 단어가있는 다른 게시물을 추가 할 수 있습니다.
>>> p = Post(body='cheese is the fourth food group', timestamp=datetime.datetime.utcnow(), author=u)
>>> db.session.add(p)
>>> db.session.commit()
이제 몸에 '4 번째'및 '치즈'가 포함 된 모든 게시물을 검색 할 수 있습니다.
>>> Post.query.whoosh_search('fourth cheese').all()
>>> [<Post u'cheese is the fourth food group'>]
완벽합니다.
보너스 : 당신은 '네 번째'OR '치즈', 이렇게 모든 게시물을 얻으려면 :.
>>> Post.query.whoosh_search('cheese fourth', or_=True).all()
>>> [<Post u'cheese is the fourth food group'>, <Post u'not my fourth'>, <Post u'my fourth and last post'>]
모두'Post.query.whoosh_search ("네번째 없습니다") 모든()'와 'Post.query.whoosh_search ("네 번째 AND 'not'"). all()'두 개의 게시물을 모두 반환합니다. 다른 아이디어? – mvwi
'.all()'일 수 있습니까? 이를 생략하면 쿼리 또는 whoosh 객체를 다시 얻거나 결과가 필요합니까? –