MySQL搜索有拼写错误



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

谢谢!!

您可以将SOUNDEX用于mysql。我们已经尝试过了,但我可以说,它没有那么好用,也让搜索有点慢。

我们遇到了类似的问题,转而使用ES.

我们所做的如下:

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

    IdToUpdate操作日期时间IsSynced

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

  • 然后添加一个玉米作业,该作业将查询该表中所有将被同步设置为"0"的行,将这些ID和操作添加到类似RabbitMQ的队列中。并将这些ID的的ISSynced设置为1

    使用RabbitMQ的原因是它将确保更新转发到ES。在失败的情况下,我们总是可以对对象重新排队。

  • 编写一个使用者以从队列中获取对象并更新ES.

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

你也可以看看ES的模糊搜索,它将处理打字错误的

同样支持模糊搜索的完成提示器。

相关内容

  • 没有找到相关文章

最新更新