gpt4 book ai didi

MySQL 搜索有拼写错误

转载 作者:行者123 更新时间:2023-11-29 11:03:39 25 4
gpt4 key购买 nike

在我的 MySQL 数据库中,我有一个用户表。当您在用户名字段输入错误时,我需要执行搜索。关于这个话题很少有很老的问题。我测试了 mysql 的内置全文搜索,但它没有按预期工作(它不处理拼写错误)[我知道,但我还是尝试了]。我最好的选择是什么?我想现在应该有一个简单的解决方案。我正在考虑在 elasticsearch 上复制用户表并从那里进行即时搜索,但我真的很想避免这将导致的同步噩梦。

谢谢!!

最佳答案

您可以使用SOUNDEX对于mysql。我们已经尝试过,但我可以说它效果不太好,而且还使搜索有点慢。

我们遇到了类似的问题并切换到 ES。

我们所做的如下:

  • 为将同步到 ES 的表创建了触发器。这触发器将写入新表。这样一个表的列将是:

    IdToUpdate Operation DateTime IsSynced

    操作将是创建、更新、删除。 IsSynced 会告诉更新是否推送到ES。

  • 然后添加一个 Jade 米作业,该作业将查询该表中所有将 i​​ssynced 设置为“0”的行,将这些 ID 和操作添加到像 RabbitMQ 这样的队列中。并将这些 ID 的 ISSynced 设置为 1

    使用 RabbitMQ 的原因是它将确保更新转发到 ES。如果发生失败,我们总是可以重新对对象进行排队。

  • 编写一个消费者从队列中获取对象并更新ES。

除此之外,您还必须创建一个实用程序,用于从数据库创建 ES 索引以供首次使用。

您还可以查看Fuzzy Search处理拼写错误的 ES

还有Completion suggester它还支持模糊搜索。

关于MySQL 搜索有拼写错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41782753/

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