Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有输入错误的MySQL搜索_Mysql_Search_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Instant - Fatal编程技术网 elasticsearch,instant,Mysql,Search,elasticsearch,Instant" /> elasticsearch,instant,Mysql,Search,elasticsearch,Instant" />

带有输入错误的MySQL搜索

带有输入错误的MySQL搜索,mysql,search,elasticsearch,instant,Mysql,Search,elasticsearch,Instant,在我的MySQL数据库中,我有一个用户表。我需要在您键入用户名字段时执行搜索。关于这个话题,很少有非常古老的问题。我测试了mysql的内置全文搜索功能,但没有达到预期效果(它不会处理打字错误)[我知道,但我还是尝试了]。 我最好的选择是什么?我认为现在应该有一个简单的解决办法。我正在考虑在elasticsearch上复制用户表并从那里进行即时搜索,但我真的希望避免这将导致的同步噩梦 谢谢 您可以使用mysql。我们已经尝试过了,但是我可以说它没有那么好用,而且它也使得搜索速度有点慢 我们有一个类

在我的MySQL数据库中,我有一个用户表。我需要在您键入用户名字段时执行搜索。关于这个话题,很少有非常古老的问题。我测试了mysql的内置全文搜索功能,但没有达到预期效果(它不会处理打字错误)[我知道,但我还是尝试了]。 我最好的选择是什么?我认为现在应该有一个简单的解决办法。我正在考虑在elasticsearch上复制用户表并从那里进行即时搜索,但我真的希望避免这将导致的同步噩梦

谢谢

您可以使用mysql。我们已经尝试过了,但是我可以说它没有那么好用,而且它也使得搜索速度有点慢

我们有一个类似的问题,并切换到ES

我们所做的工作如下:

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

    IdToUpdate操作日期时间已同步

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

  • 然后添加一个corn作业,该作业将查询此表中所有将issynced设置为“0”的行,并将这些ID和操作添加到类似RabbitMQ的队列中。并将这些ID的ISSynced设置为1

    使用RabbitMQ的原因是,它将确保将更新转发给ES。如果出现故障,我们总是可以对对象重新排队

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

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

你也可以看看能处理打字错误的电子表格


还支持模糊搜索。

如果用户名是单个单词,您可以尝试。我们也遇到了同样的问题,转而使用弹性搜索,它完全值得同步,因为它从数据库中获得了巨大的负载(在我的情况下为30%),谢谢,但我认为soundex不够好。你能简单描述一下你是如何进行同步的吗?你怎么能保证两个分贝在长时间后对齐?这有点乏味。在DB上,我们在ES索引中的表上创建了一个触发器。此触发器将添加更改的行的所有id,并将id存储在表中。我们创建了一个cron作业,该作业将读取该表并将id发送到rabbitmq上的队列。我们使用了一个队列,以便它能够抵抗失败。并编写了一个消费者,将更新ES中的索引。我们的表通常更新率很低(每秒更新5次)。如果更新/插入太大,那么这将很困难谢谢,我正在考虑使用相同的方法。我也有类似的更新/插入速率