Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL全文搜索?_Mysql_Database_Search_Full Text Search - Fatal编程技术网

MySQL全文搜索?

MySQL全文搜索?,mysql,database,search,full-text-search,Mysql,Database,Search,Full Text Search,我正在我的网站上搜索功能的工作。我想为用户提供一个最好的搜索机制。我正在使用PHP/MYSQL 假设用户搜索“运动” 我有30条记录有“sport”一词,5条记录有“sports”一词,但当我搜索sport时,下面的查询只返回30条有“sport”一词的结果。但事实上,我认为提供良好搜索结果的最佳方式是显示所有30+5记录,所有记录都有运动或运动 SELECT DISTINCT p.id, p.title, p.descr, p.tags FROM pdata p WHERE MATCH (p.

我正在我的网站上搜索功能的工作。我想为用户提供一个最好的搜索机制。我正在使用PHP/MYSQL

假设用户搜索“运动”

我有30条记录有“sport”一词,5条记录有“sports”一词,但当我搜索sport时,下面的查询只返回30条有“sport”一词的结果。但事实上,我认为提供良好搜索结果的最佳方式是显示所有30+5记录,所有记录都有运动或运动

SELECT DISTINCT p.id, p.title, p.descr, p.tags FROM pdata p WHERE MATCH (p.title, p.tags, p.descr) AGAINST ('sport')
请告诉我一些文章或一些技巧和窍门,我将能够提供一个良好的搜索功能

...MATCH (p.title, p.tags, p.descr) AGAINST ('sport*' IN BOOLEAN MODE)
可能会成功


编辑,是解决此类问题的绝佳资源!:)

只需在搜索字符串上使用%通配符即可。这将允许匹配搜索字符串形成的任何单词。遗憾的是,您需要处于布尔模式才能使用此通配符。此外,所有搜索字符串必须大于3个字符才能使用全文搜索显示。这可以在mysql系统设置中更改,但默认值为3。

在您的情况下,我将进行以下查询:

选择p.id、p.title、p.descr、p.tags 从pdata p,其中(p.标题类似 “%SPORT%”或类似“%SPORT%”或 p、 描述(如“%SPORT%”)


此查询将查找任何涉及体育杂志、夏季体育等的文章。

达到目标:)哇。嘿,它工作得很好。但我不明白为什么它以前没有给我数据(没有*和布尔模式关键字)??请告诉我,但还有一个问题。。当我搜索反('ipl*'在布尔模式下)时,它只返回一个结果,而我在标题、标记和描述列中找到了5条记录,它们有“ipl”字。那为什么它只返回一个结果呢。当我搜索“ICL”时,它返回0个结果,而我有一个记录中有ICL。