我有一个字符串数据库(任意长度),其中包含超过一百万项(可能更多)。
我需要将用户提供的字符串与整个数据库进行比较,如果存在相同的字符串,则检索出,否则返回最接近的模糊匹配(相似度为60%或更高)。搜索时间最好在一秒钟以内。
我的想法是在缩小的候选项范围内,基于它们的长度,使用编辑距离来比较每个数据库字符串和搜索字符串。
然而,考虑到我将需要经常执行此操作,我正在考虑构建一个数据库字符串的索引,保存在内存中并查询索引,而不是直接查询数据库。
有没有不同的方法来解决这个问题,或者如何建立内存索引的想法?