MS Access 关键字搜索优化

Posted

技术标签:

【中文标题】MS Access 关键字搜索优化【英文标题】:MS Access keyword search optimization 【发布时间】:2013-01-11 14:32:12 【问题描述】:

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

【问题讨论】:

使用通配符和大量代码? :) 哈哈谢谢。这就是我现在所处的位置,我已经在紧密的单词匹配中获得了不错的结果,但我想获得更多的结果,但不太确定如何去做。 您可以开始从任一侧剥离字母并使用通配符运行,删除的每个字母都会降低匹配百分比,同样,将中心字符替换为 ?通配符。另请参阅 soundex 和 Levenshtein 的 VBA:wiki.lessthandot.com/index.php/… 【参考方案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 Overflowms access - Finding similar sounding text in VBA - Stack Overflow

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

【讨论】:

这绝对是个不错的起点!谢谢!我得深入研究一下,看看我能得到什么。 Levenshtein 作为排名系统非常棒!万分感谢!现在我只需要努力获得更多结果,这样我就有了排名。

以上是关于MS Access 关键字搜索优化的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 包含查询

从 MS Access 表单中的动态列表框创建新的 Excel 电子表格

MS Access 2010 多列组合框自动完成

搜索引擎优化工具

搜索引擎关键词网站优化的办法

什么是网站关键词优化