- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 MySQL 数据库中,我有一个用户表。当您在用户名字段输入错误时,我需要执行搜索。关于这个话题很少有很老的问题。我测试了 mysql 的内置全文搜索,但它没有按预期工作(它不处理拼写错误)[我知道,但我还是尝试了]。我最好的选择是什么?我想现在应该有一个简单的解决方案。我正在考虑在 elasticsearch 上复制用户表并从那里进行即时搜索,但我真的很想避免这将导致的同步噩梦。
谢谢!!
最佳答案
您可以使用SOUNDEX对于mysql。我们已经尝试过,但我可以说它效果不太好,而且还使搜索有点慢。
我们遇到了类似的问题并切换到 ES。
我们所做的如下:
为将同步到 ES 的表创建了触发器。这触发器将写入新表。这样一个表的列将是:
IdToUpdate Operation DateTime IsSynced
操作将是创建、更新、删除。 IsSynced 会告诉更新是否推送到ES。
然后添加一个 Jade 米作业,该作业将查询该表中所有将 issynced 设置为“0”的行,将这些 ID 和操作添加到像 RabbitMQ 这样的队列中。并将这些 ID 的 ISSynced 设置为 1
使用 RabbitMQ 的原因是它将确保更新转发到 ES。如果发生失败,我们总是可以重新对对象进行排队。
编写一个消费者从队列中获取对象并更新ES。
除此之外,您还必须创建一个实用程序,用于从数据库创建 ES 索引以供首次使用。
您还可以查看Fuzzy Search处理拼写错误的 ES
还有Completion suggester它还支持模糊搜索。
关于MySQL 搜索有拼写错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41782753/
我想通过用语言环境拼写数字来本地化数字,最后使用了 ICU4J。我在许多地区都取得了成功,但似乎没有在格鲁吉亚、土耳其或阿拉伯语等地区完成。 ULocale locale = new ULocale(
我正在研究具有端点的 swagger API 规范: /authorizations 我也想为这个端点定义一个替代拼写(授权)。这可能吗?或者我是否需要为每个拼写定义一个单独的路由? /authori
我正在研究具有端点的 swagger API 规范: /authorizations 我也想为这个端点定义一个替代拼写(授权)。这可能吗?或者我是否需要为每个拼写定义一个单独的路由? /authori
我使用 Yahoo BOSS 的时间很短。这是一个简单的搜索 API,但拼写建议支持确实不那么强大。周围的人是否有任何关于在 BOSS 上获得更好的拼写建议的想法。 最佳答案 不幸的是,甚至在几年后,
问题如下:我正在编写一个强力解密器来破解一些 super secret 代码(这是一场竞赛,而不是犯罪),结果证明这是不可能的:树中的节点太多需要被搜查。为了克服这个问题,我认为检查中间“解决方案”以
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我是一名优秀的程序员,十分优秀!