我想根据它与MySQL的相关性做一个搜索。不管我做了什么,我都不能成功。我做了一个全文搜索,我做了一个类似的搜索,再次我不能做下面的顺序。
例如,搜索单词:"first second“
First Second关键字-> (完整单词)将以开头
关键字First Second关键字-> (完整单词)位于中间或结尾
Firstsecond关键字-> (相邻单词)将以开头
关键字Firstsecond关键字-> (相邻词)位于中间或结尾
First关键字-> (只有第一个单词)将以开头
关键字First关键字-> (仅为第一个单词)位于中间或结尾
Second关键字-> (只有第二个单词)将以开头
关键字Second关键字-> (只有第二个单词)在中间或结尾
然后我希望它继续如下;(所有这些)
第一个asdasd关键字
关键字asdasd第一个关键字
关键词asdasdfirstasdasd关键字
Secondasdasd关键字
关键词asdasdsecond关键字
关键词asdasdsecondasdasd关键字
发布于 2020-09-12 18:04:43
是的,全文是不会做这种搜索的。是以文字为导向的。
您想要的不是真正简单的SQL。我想你想要这样的东西击中第一个关键字。
SET @match := 'first'
SELECT MIN(priority) priority, value
FROM (
SELECT 1 priority, value FROM tbl WHERE value LIKE CONCAT(@match, ' %')
UNION ALL
SELECT 2 priority, value FROM tbl WHERE value LIKE CONCAT('% ', @match, ' %')
UNION ALL
SELECT 3 priority, value FROM tbl WHERE value LIKE CONCAT('%', @match, '%')
) results
GROUP BY value
ORDER BY MIN(priority), value;通常,您使用UNIONed系列的SELECT,其中包含对全词和嵌入式word匹配的优先级,并对每一行采用最低优先级匹配。
您需要详细说明处理这两个关键字的一般模式。这看起来可能会变成一个真正的疼痛,在xxx脖子,以得到正确。LIKE '%something'搜索术语意味着搜索速度不会很快。
如果您要进行大规模的研究,那么可能值得对狮身人面像进行研究。
https://stackoverflow.com/questions/63863282
复制相似问题