gpt4 book ai didi

php - 全文搜索结果显示重复次数最多的单词

转载 作者:行者123 更新时间:2023-11-28 23:37:46 24 4
gpt4 key购买 nike

我插入了我的网络浏览器,效果很好,但它显示的结果很乱,我想在顶部显示搜索中重复的单词。

看了网上的教程,但是我做不到,总是乱七八糟,不明白为什么。

现在我是这样的:

$sql="SELECT art,tit,tem,cred,info,que,ano,url 
FROM contenido
WHERE MATCH (art,tit,tem,cred,info)
AGAINST ('" .$busqueda. "' IN BOOLEAN MODE)
ORDER BY id DESC";

Internet 上没有太多关于优化或优化 Mysql FULLTEXT 搜索的信息。看看有没有专家来过这里,让我们都学习。

如何优化您的搜索?谢谢。

最佳答案

我认为问题在于您按 id 排序。

全文按其计算的匹配分数排序,首先显示更强的匹配。当您应用 ORDER BY id DESC 时,您将失去这种按匹配排序的顺序。

如果需要,您可以通过以下方式查看结果集中的实际分数:

SELECT art,tit,tem,cred,info,que,ano,url,
MATCH (art,tit,tem,cred,info)
AGAINST ('your term' IN BOOLEAN MODE) AS score
FROM contenido
WHERE MATCH (art,tit,tem,cred,info)
AGAINST ('your term' IN BOOLEAN MODE)
ORDER BY id DESC

顺便说一句:为“您的术语”部分使用准备好的语句。

如果您的搜索字符串有空格但每个词都很重要,您需要将它们视为单独的部分。因此,如果同时拥有“Mercedes”和“Benz”很重要:

  • 不要:AGAINST('Mercedes Benz' IN BOOLEAN MODE) <--- 这意味着 Mercedes Benz
  • 执行:AGAINST('+Mercedes +Benz' IN BOOLEAN MODE)

如果你想要任何必须有第一个词的东西,但可选的第二个词(当两个都找到时排名更高)做:

 AGAINST ('+Mercedes Benz' IN BOOLEAN MODE)

这里有一长串组合:https://dev.mysql.com/doc/refman/5.6/en/fulltext-boolean.html

并且不要忘记,去掉 ORDER BY id DESC。我认为您的最终查询应该类似于“Mercedes Benz”

SELECT art,tit,tem,cred,info,que,ano,url
FROM contenido
WHERE MATCH (art,tit,tem,cred,info)
AGAINST ('+Mercedes Benz' IN BOOLEAN MODE);

是的,MySQL 中的自由文本有很多怪癖,但只要尝试一下,您就会掌握窍门。

关于php - 全文搜索结果显示重复次数最多的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35277617/

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