検索

ホームページ  >  に質問  >  本文

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日前941

全員に返信(4)返信します

  • PHP中文网

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

    Flask-WhooshAlchemy を使ったことはありませんが、表現から判断すると @digwtx さんがおっしゃるようにあいまい一致の書き方が間違っているか、長さが制限されているのかもしれません。

    MySQL を使用している場合、MySQL では一致する文字の最小長が 4 文字に制限されています。一致する結果の詳細が表示されるのは、それが 4 文字を超えている場合のみです。

    フラスコでの 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
  • キャンセル返事