搜尋

首頁  >  問答  >  主體

python - flask中sqlalchemy如何模糊查询

因为现在做一个查询功能,输入一个字符串,去查询匹配的内容,这个字符串可能存在于多个字段。

现在参考用了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了吧。。。求大神推荐个解决办法

巴扎黑巴扎黑2804 天前943

全部回覆(4)我來回復

  • PHP中文网

    PHP中文网2017-04-17 14:59:46

    沒使用過Flask-WhooshAlchemy,而看你的表達式,可能像@digwtx說的模糊匹配寫錯,或者就是長度被限制。

    對於你查不出結果,還有個可能的原因,如果用的是MySQL的話,MySQL限定了最小匹配字符長度,默認長度為4,大於4個字符才會有匹配結果詳情

    flask中SQLAlchemy的基本查詢詳情

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 14:59:46

    whoosh_index這個方法來初始化全文索引,為了保持資料庫和全文檢索引擎的同步,在資料庫中刪除所有已經存在的數據,然後重新開始。

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 14:59:46

    不是人家2, 只是你沒選對方法而已, 例如:

    Article.query.filter(Article.title.ilike('%ce%'))

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 14:59:46

    有木有,有木有

    回覆
    0
  • 取消回覆