我试图为用户提供更好的搜索体验,我们有很多长的产品标题,如:
"宏碁V3-772 17.3" HD+/英特尔酷睿i7-4702MQ iki 3.2Ghz/4Gb DDR3 1600Mhz/1Tb HDD/GeForce GTX850 2Gb DDR5/WiFi/HDMI/蓝牙/高清摄像头/USB 3.0"
所以,如果客户端正在寻找:"宏碁4Gb 1Tb i7"笔记本电脑,MySQL功能像%…%查找速度很快,但如果没有找到"i7"这样的结果,则查询给出0个结果。
我们正在尝试按每个搜索关键字进行搜索,然后计算给出最多结果的1,并在其中搜索2和3个组合的LIKE词。
或者有更简单的解决方案来实现这一切搜索?
UPDATE:所以我得到了我的任务的解决方案-全文搜索与最小的1个符号,在我的。ini文件中重新配置,所以它寻找"i7"和所有其他小搜索,因为它应该,感谢帮助:)
最好做你想做的事:
$search_key = $_POST['searchkey']; //take the search text from the post method
$search_words = array();
$search_words = explode(" ",$search_key);
$q_string = "";
$last_index = intval(count($search_Words)) - 1;
for($i = 0; $i<count($search_Words);$i++)
{
$q_string = $q_string . " description LIKE '%$search_words[$i]%' ";
if($i != $last_index)
$q_string = $q_string . " OR ";
}
最后一个
mysql_query("SELECT * FROM table_name WHERE ".$q_string);
注意:假设description
字段包含表table_name