警告已输入类似数据

时间:2017-09-27 17:14:42

标签: php mysql

我试图找出一种方法来检测是否在之前输入了类似的输入到mysql数据库中。 我并不是说重复输入没有相似但不完全,事实是,当数据输入人员需要输入名称时,名称的发音可能会从一个到另一个输入不同所以我需要一种方式以便我的PHP代码检测是否已输入类似于输入的条目,并警告工作人员仔细检查是否有相同名称

1 个答案:

答案 0 :(得分:0)

单独使用mysql无法完成此操作,但需要由代码处理。因此,在将任何数据插入表之前,需要制定并执行查询以查找潜在的类似数据。重要的定义很大程度上取决于您的业务需求。

模糊搜索不是MySQL的强项,你可能会逃脱一个或多个like条件。可以通过使用通配符占位符计算可能的变化并将它们组合成一个查询来搜索Levenshtein距离的变化(可能是三个)。 Gordon Lesti更详细地描述了这种方法。根据这些查询的复杂性和系统上的流量,这有可能很容易地降低mysql实例。

如果性能问题,像Elasticsearch这样的搜索引擎可能会有所帮助。将数据插入MySQL时,此数据也将作为文档添加到Elasticsearch。这样就可以使用Elasticsearch的模糊搜索功能搜索类似的记录,这种功能比MySQL更高效。

如果MySQL的事务安全性不是应用程序的要求,那么也可以选择用Elasticsearch替换MySQL,并使用Elasticsearch不仅用于搜索,还用于持久性。