因为现在做一个查询功能,输入一个字符串,去查询匹配的内容,这个字符串可能存在于多个字段。
现在参考用了Flask-WhooshAlchemy来做,但是查询结果如下:
hosts.query.whoosh_search('ce').all()
[]
hosts.query.whoosh_search('ceshi').all()
[<Host u'\u6d4b\u8bd5'>]
hosts.query.whoosh_search('ces').all()
[]
hosts.query.whoosh_search('esh').all()
[]
查询"ceshi"的时候又结果,而查询"ce"的时候竟然查询不出来,这也太2了吧。。。求大神推荐个解决办法
저는 Flask-WhooshAlchemy를 사용해본 적이 없지만, 표현으로 볼 때 @digwtx님 말씀처럼 퍼지 매칭이 잘못 쓰여졌거나 길이가 제한되어 있을 수도 있습니다.
결과를 찾을 수 없는 또 다른 이유가 있습니다. MySQL을 사용하는 경우 MySQL은 최소 일치 문자 길이를 4자로 제한합니다. 4자보다 큰 경우에만 일치 결과 세부 정보를 사용할 수 있습니다.
Flask의 SQLAlchemy 기본 쿼리 내용
whoosh_index 이 메소드는 전체 텍스트 인덱스를 초기화합니다. 데이터베이스와 전체 텍스트 검색 엔진 간의 동기화를 유지하기 위해 데이터베이스에 있는 기존 데이터를 모두 삭제하고 다시 시작합니다.
不是人家2, 只是你没选对方法而已, 例如:
Article.query.filter(Article.title.ilike('%ce%'))
나무가 있다 나무가 있다