MySQL搜索查询最佳文本匹配


MySQL search query for best text match

我试图为用户提供更好的搜索体验,我们有很多长的产品标题,如:

"宏碁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

中产品的详细信息