MS Access关键字搜索优化

时间:2013-01-11 14:32:13

标签: vba ms-access access-vba

我确信这个主题已经被触及了很多,但是经过几个小时的谷歌搜索我恐怕找不到我需要的答案。我真正想要的只是一个方向,一条路可以学习我需要的东西。我有一个MA Access数据库,我正在尝试编写关键字搜索查询,但我想从我的查询中获得非常广泛的结果。说description LIKE "red"很容易,但我正在寻找更强大的搜索。甚至会返回部分搜索词的东西,所以如果我搜索“剪贴板”,我也想找到“冲浪板”。我真正想要的是能够进行关键字搜索,这将返回大量的结果,但有一种方法可以根据与原始搜索的一个相关性对它们进行排名。有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您可以计算单词之间的Levenshtein distance。 Levenshtein距离测量两个序列之间的差异。这样你就可以考虑使用类似词语了。

Levenshtein距离的范围从0(单词相等)到最长单词的长度(单词完全不同)。您可能希望将Levenshtein值转换为更合适的值。

Dim maxlength As Long
Dim similarity As Single

maxlength = Max(word1.Length, word2.Length)
similarity = (maxlength - levenshteinDist) / maxlength

这产生0(不相似)与1(相等)之间相似性的值。

您可以在此处找到VBA实施:
Levenshtein Distance in Excel - Stack Overflow
ms access - Finding similar sounding text in VBA - Stack Overflow

注意:Access没有Max功能。自己编写或明确编码。