我最近在 MySQL 中实现了 Damerau-Levenshtein 算法的 UDF,并且想知道是否有一种方法可以将 Damerau-Levenshtein 算法的模糊匹配与 Like 函数的通配符搜索结合起来?如果我在表中有以下数据:
ID | Text
---------------------------------------------
1 | let's find this document
2 | let's find this docment
3 | When the book is closed
4 | The dcument is locked
我想运行一个包含 Damerau–Levenshtein 算法的查询...
select text from table where damlev('Document',tablename.text) <= 5;
...使用通配符匹配以在我的查询中返回 ID 1、2 和 4。我不确定语法或者这是否可能,或者我是否必须以不同的方式处理这个问题。上面的 select 语句单独工作正常,但不适用于单个单词。我将不得不将上面的 SQL 更改为...
select text from table where
damlev('let's find this document',tablename.text) <= 5;
...当然只返回 ID 2。我希望有一种方法可以将模糊和通配符组合在一起,如果我希望返回的所有记录都包含“文档”一词或其变体出现在文本字段中。