我最近回答了一个问题,在其评论部分中,我从其他用户那里得到了一个我无法回答的问题。
Searching for a product even if code is misspelled
给定一个模糊搜索参数,它将使用正则表达式来过滤“大”字样。数据源,您将如何为'相关性'分配值?或者'最匹配'?
过滤器可以正常工作,但我不知道如何调整它,以便您可以识别哪些值最接近提供的搜索字符串,以及哪些值最远。
在这种情况下,最接近的是与字符串完全匹配(假设' +'字符不存在,仍然匹配的任何内容最接近)。最远,即最差,匹配将是相反的,最大数量的不匹配字符。
为了避免争论,我们假设使用的模糊搜索是使用' +'和' *'在搜索模式中。 X+HG*UPO+Z*
或类似的东西。
目标是避免使用字符串长度比较。在我回答的问题中,数据几乎保证总是相同的长度。
答案 0 :(得分:0)
您可以计算Levenshtein distance或类似的东西。 Approximate string matching on Wikipedia可能会有所帮助。