擅长:python、mysql、java
<p>Levenshtein非常昂贵,我不建议在这么多文档的模糊匹配中使用它(除非您想构建一个Levenshtein自动机来生成一个距离文件中每个单词n步远的标记索引)。在</p>
<p>对于一定长度的单词,三元组索引本身应该是快速和准确的,尽管你提到名字,如果这意味着多个单词,那么块也需要被索引,然后就需要实现。在</p>
<p>如果您尝试单独使用trigram索引,但对准确性不满意,您可以尝试添加一个trigram chunk index aka(Ban,ana,nan)作为元组,将Ban、nan和ana作为单独的三元组,但添加到一个单独的索引中。随着字符长度的减少,精度会有更大的下降,因此应该考虑到这一点。在</p>
<p>这里的关键是levenshtein在O(查询长度^文件中单词的长度*文件中的字数)执行,而token/trigram/chunk索引在O(log(文件中的字数)*查询中的令牌/块/三元组数)执行。在</p>