我有一个MySQL DB和一个Solr实例,这是MySQL DB的确切副本。
我们有很多重复的文本(或超过80%的模拟文本)。从现在起,这些文本需要捆绑。在PHP中,我知道有非常好的函数来计算这些模拟。
我的问题是:
我如何聪明地(阅读:尽可能快地)将每一个新文本与DB中的现有文本进行比较?我认为从DB/Solr中读取200.000条记录来比较一个新项目,然后再对下一个项目进行比较,这不是一个好做法。
发布于 2013-08-08 10:36:00
您可以安装一个实现Levenshtein距离算法 for MySQL的Levenshtein距离算法并让数据库进行比较。
发布于 2013-08-08 11:55:46
您可以使用SOLR Dedupe,它可以
对于类似的文档检测,您必须将signatureClass设置为TextProfileSignature。
然而,这是一种非常模糊的算法,没有为您提供请求"80%相似“的选项--老实说--我甚至想不出一种方法来表示这两个文档"80%相似”--我想这是通过人的感知在现场进行的统计之一。
不过,如果您想要比较的文本相当长,那么TextProfileSignature就会产生很好的结果。
请阅读对本页的影响和限制
https://stackoverflow.com/questions/18123709
复制相似问题