我有带全文索引的MySQL表。我想知道如何使用MATCH ... AGAINST()与SQLAlchemy。你有一些例子吗?
...
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+'%')))
...
我想用'MATCH / AGAINST IN BOOLEAN MODE'结构替换LIKE,但我不知道如何
答案 0 :(得分:3)
您只需要使用以下条款:
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