gpt4 book ai didi

mysql - 使用 Union mysql 以 bool 模式进行权重搜索

转载 作者:行者123 更新时间:2023-11-29 21:14:49 25 4
gpt4 key购买 nike

我正在使用此查询跨多个表进行搜索,该查询正在工作,但是我想权衡与列“标题”的匹配高于与列描述的匹配。

SELECT 'about' AS a.about,title,null article ,null description

FROM about a

WHERE
(
MATCH(a.about) AGAINST ('\"$search\"' IN BOOLEAN MODE)
)

UNION
SELECT 'articles' AS null, b.title,b.article,b.description
from articles b

WHERE
(
MATCH(b.title,b.article,b.description) AGAINST ('\"$search\"' IN BOOLEAN MODE)
)

我尝试将“AS相关性1”添加到比赛末尾,如下所示,但它没有返回结果:

SELECT 'about' AS a.about,title,null article ,null description

FROM about a

WHERE
(
MATCH(a.about) AGAINST ('\"$search\"' IN BOOLEAN MODE)
)

UNION
SELECT 'articles' AS null, b.title,b.article,b.description
from articles b

WHERE
(
MATCH(b.title,b.article,b.description) AGAINST ('\"$search\"' IN BOOLEAN MODE) AS relevence_1,
MATCH(b.title,b.article,b.description) AGAINST ('\"$search\"' IN BOOLEAN MODE) AS relevence_2
)

ORDER BY (relevance_1 * 3) + (relevance_2 * 2) DESC

最佳答案

经过大量搜索后,我发现这种方法有效并且非常可读:

SELECT 'about' AS a.about,title,null article ,null description,MATCH(a.title) AGAINST ('\"$search\"' IN BOOLEAN MODE) as scale

FROM about a

WHERE
(
MATCH(a.about) AGAINST ('\"$search\"' IN BOOLEAN MODE)
)

UNION
SELECT 'articles' AS null, b.title,b.article,b.description,MATCH(b.title) AGAINST ('\"$search\"' IN BOOLEAN MODE) as scale
from articles b

WHERE
(
MATCH(b.title,b.article,b.description) AGAINST ('\"$search\"' IN BOOLEAN MODE)
)

ORDER BY scale DESC

关于mysql - 使用 Union mysql 以 bool 模式进行权重搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36041070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com