使用模糊正则表达式过滤器时查找相关程度

时间:2012-06-11 12:24:19

标签: regex

我最近回答了一个问题,在其评论部分中,我从其他用户那里得到了一个我无法回答的问题。

Searching for a product even if code is misspelled

给定一个模糊搜索参数,它将使用正则表达式来过滤“大”字样。数据源,您将如何为'相关性'分配值?或者'最匹配'?

过滤器可以正常工作,但我不知道如何调整它,以便您可以识别哪些值最接近提供的搜索字符串,以及哪些值最远。

在这种情况下,最接近的是与字符串完全匹配(假设' +'字符不存在,仍然匹配的任何内容最接近)。最远,即最差,匹配将是相反的,最大数量的不匹配字符。

为了避免争论,我们假设使用的模糊搜索是使用' +'和' *'在搜索模式中。 X+HG*UPO+Z*或类似的东西。

目标是避免使用字符串长度比较。在我回答的问题中,数据几乎保证总是相同的长度。

1 个答案:

答案 0 :(得分:0)

您可以计算Levenshtein distance或类似的东西。 Approximate string matching on Wikipedia可能会有所帮助。