gpt4 book ai didi

MySQL LIKE %string% 不够宽容。还有什么我可以用的吗?

转载 作者:可可西里 更新时间:2023-11-01 06:39:50 25 4
gpt4 key购买 nike

我有一个客户询问他们的搜索是否搜索可以根据用户输入以多种格式搜索的公司名称,例如存储在数据库中的公司是 A J R Kelly Ltd,如果用户搜索它找到的“A J R Kelly”,使用;

<cfif pctermsCount gt 0>
AND (LOWER(p.name) LIKE '%#pcTerms#%')
</cfif>

如果他们搜索“Kelly”,则会找到该公司,但如果他们搜索字符串的损坏版本,如“A J Kelly”或“AJ Kelly”,则找不到。

有什么我可以做的让它更宽容一点吗?

谢谢。

最佳答案

如果您使用的是 MyISAM,则可以使用全文索引。 See this tutorial

如果您使用不同的存储引擎,您可以使用像 sphinx 这样的第三方全文引擎,它可以充当 storage engine for mysql或者可以查询的单独服务器。

使用 MySQL 全文索引,对 A J Kelly 的搜索将匹配 AJ Kelly(不要混淆问题,但 A、J 和 AJ 将被忽略,因为它们太短了默认情况下,它会在 Kelly 上匹配。)通常,全文更宽容(通常比 LIKE '%string%' 更快),因为允许部分匹配,然后可以根据相关性对它们进行排名。

您还可以使用 SOUNDEX通过索引单词的语音等价物并通过在搜索词上应用 SOUNDEX 搜索它们然后使用它们来搜索索引来使搜索更宽容。例如,对于 soundex,marymariemarry 都将匹配。

关于MySQL LIKE %string% 不够宽容。还有什么我可以用的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7940346/

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