gpt4 book ai didi

mysql - 如何在列中执行MySQL智能文本搜索?

转载 作者:行者123 更新时间:2023-11-30 01:13:06 26 4
gpt4 key购买 nike

我正在尝试在 MySQL 表中搜索商店名称,该表有一个名为 fullname 的字段。截至目前,我正在使用 MySQL 的 SOUNDS LIKE 方法,但是这里有一个失败的示例:

假设我有字符串 Banana's Shop。然后使用 SOUNDS LIKE 查询“nana”或“bananas”不会给我结果。这是我当前的查询:

SELECT `fullName` FROM `shop` WHERE `fullName` SOUNDS LIKE 'nana';

有没有更好的方法可以在 MySQL 中进行像这样的简单搜索,并且更智能,这样打字错误仍然可以匹配?

最佳答案

SOUNDS LIKE 使用的古老且稍微值得尊敬的 SOUNDEX 算法不处理后缀声音。也就是说,nana 不会也不可能匹配 banana。但是,banani 将匹配 banana

两个话语听起来不一定相似,除非它们具有相同的音节数。它非常适合匹配姓氏等内容:Smith、Schmitt 和 Schmidt 都具有相同的 SOUNDEX 值。

将 SOUNDEX 称为“智能文本搜索”有点夸张。 http://en.wikipedia.org/wiki/Soundex

您可以考虑 MySQL FULLTEXT 搜索,您可以查找它。这会进行一定量的短语匹配。也就是说,如果您的列中有“banana shop”和“banana slug”,那么“banana”一词就有机会匹配这两个值。

小心全文。当您要搜索的表中的行数少于几百行时,它的工作方式与直觉相反。

但这不是一个适合拼写错误的单词匹配器。你问的问题并不容易。

您可以考虑 Levenshtein 算法(您可以查找)。但要正常工作却很困难。

关于mysql - 如何在列中执行MySQL智能文本搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19308317/

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