gpt4 book ai didi

基于 PHP MySQL 的近似匹配搜索

转载 作者:可可西里 更新时间:2023-11-01 08:27:03 24 4
gpt4 key购买 nike

我想让我的搜索功能在出现拼写错误或产品名称特殊字符时更智能地工作。

例如,我们有一个名为“Post-it”的产品,我们希望在用户键入“Post it”或“Postit”时显示它。
另一个例子,我们有一个名为“bic clic stic”的产品,我们希望在用户搜索“bic clic stick”时显示它,因为它有一个接近的匹配项。

我们当前的查询是这样的:

SELECT name, image, sku, description FROM products WHERE name like '%KEYWORD%' AND ....

最佳答案

大多数解决此问题的方法都不是特别有效。也就是说,它们仍然需要全表扫描(尽管可以进行一些优化)。

技术解决方案是一种称为 Levenshtein 距离(或更笼统地说,编辑距离)的算法。这是一种测量两个字符串之间距离的方法,对于您问题中的示例非常有效。

您可以在谷歌上搜索“MySQL Levenshtein”以获得各种实现。

请注意,实现效率不高;他们需要全表扫描。生成的查询如下所示:

SELECT name, image, sku, description
FROM products
WHERE levenshtein(name, 'KEYWORD') <= 3; -- or some threshhold value

关于基于 PHP MySQL 的近似匹配搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34346705/

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