MYSQL的全文检索
SELECT
keyword ,
keyword_tzh
FROM
itemscout_hot_search
WHERE
MATCH ( keyword_tzh,keyword ) AGAINST ("你好" IN BOOLEAN MODE )
ORDER BY
MATCH ( keyword_tzh, keyword ) AGAINST ("你好" ) DESC
limit 0,10
转换为 SQLalchemy
from sqlalchemy import desc
from sqlalchemy.dialects.mysql import match
from sqlalchemy import func
with get_session() as session:
match_expr = match(
item_hot_search.keyword_tzh,
item_hot_search.keyword,
against=search_keyword,
)
result_data = session.query(
item_hot_search.keyword,
item_hot_search.keyword_tzh
).filter(
match_expr.in_boolean_mode()
).order_by(desc(match_expr)).offset((current - 1) * pageSize).limit(pageSize).all()
keyword_tzh/keyword : 全文检索字段
search_keyword : 搜索词
in_boolean_mode() :检索方式
order_by(): 排序
desc(): 降序
offset(): 翻页
limit() :每页大小