构建SMART mySQL和PHP搜索引擎的最佳方法?

2022-08-30 23:27:51

构建mySQL和PHP搜索的最佳方法是什么?

我目前正在使用类似的东西

%期限%

我希望它能够找到结果,即使他们拼写得有点错误,例如:

字段值 = “一个:停止商店:

他们搜索:

一站式商店

一站式商店

等。。我想要一个非常聪明的搜索,这样他们就可以找到信息,即使他们没有搜索到确切的东西。

构建此类智能搜索的最佳方法是什么?


答案 1

like '%term%'非常慢且未优化,您可能希望为此列添加全文,并为此使用布尔模式

match(column) against('+One +Shop +Stop' in boolean mode)

请注意最小字长为4,因此,您需要考虑将其更改为3,并且全文搜索仅适用于myisam

其他开源搜索引擎(如狮身人面像)也是理想的选择


答案 2

阿杰雷亚尔是对的...只是想添加一个示例来提供帮助:

$query = sprintf("SELECT *, 
         MATCH(col1, col2) AGAINST('%s' IN BOOLEAN MODE) AS relevance
     FROM my_table
     ORDER BY relevance DESC LIMIT 20", $keyword);
$rs = $conn->query($query);

希望这有帮助


推荐