gpt4 book ai didi

MySQL根据关键词选择文本片段

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

我有一个查询,根据与搜索词的相关性提取搜索结果:

SELECT *, 
( (1.3 * (MATCH(strTitle) AGAINST ('+john+smith' IN BOOLEAN MODE))) + (0.6 * (MATCH(txtContent) AGAINST ('+john+smith' IN BOOLEAN MODE)))) AS relevance
FROM content
WHERE (MATCH(strTitle,txtContent) AGAINST ('+john+smith' IN BOOLEAN MODE) )
ORDER BY relevance DESC

我还希望能够从描述中提取搜索匹配的第一个实例。因此,如果搜索“john smith”,我希望结果显示如下:

Page Title 1 ...snippet matching john smith...

Page Title 2 ... snippet john matching....

Page Title 3 .... snippet smith matching john...

等等等等

这怎么可能?

最佳答案

您可以使用案例陈述来做到这一点:

select *,
( (1.3 * (MATCH(strTitle) AGAINST ('+john+smith' IN BOOLEAN MODE))) + (0.6 * (MATCH(txtContent) AGAINST ('+john+smith' IN BOOLEAN MODE)))) AS relevance,
(case when MATCH(strTitle) AGAINST ('+john+smith' IN BOOLEAN MODE)) > 0
then 'snippet matching +john+smith'
. . .
end)

就我个人而言,我会将匹配作为单独的变量放在子查询中:

select
from (select t.*,
MATCH(strTitle) AGAINST ('+john+smith' IN BOOLEAN MODE)) as match_join_smith,
. . .
from t
) t

然后将这些变量用于外部查询中的逻辑。

关于MySQL根据关键词选择文本片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15026998/

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