4

フルテキストインデックスを持つMySQLテーブルがあります。SQLAlchemyでMATCH...AGAINST()を使用する方法を知りたいです。例はありますか?

...
    trs = dbsession.query(Trans).filter(Trans.client_id==user_id)
    if search and search != '':
        trs = trs.filter(or_(Trans.transcribe.like('%'+search+'%'), Trans.lang_name.like('%'+search+'%')))
...

LIKEを'MATCH/ AGAINST IN BOOLEAN MODE'構造に置き換えたいのですが、方法がわかりません

4

1 に答える 1

4

次の句を使用する必要があります。

Trans.lang_name.match(str_to_match)

str_to_match一致させたい文字列はどこにありますか。

これは(MySQL方言の場合)次のようにコンパイルされます(Transモデルテーブル名がtransであり、モデル属性が列名と一致すると仮定)。

'MATCH(trans.lang_name) AGAINST (%s IN BOOLEAN MODE)' % str_to_match
于 2012-10-23T10:18:20.000 に答える