鉴于一个非常大的产品名称数据库,您如何检测用户搜索中可能存在的拼写错误并建议可能的更正(有点像Google提供的那样)?
E.g。
用户输入“fork handels”并按“搜索”。
他们回来了
“没有结果。你的意思是'叉柄'吗?”
答案 0 :(得分:14)
这个问题有几种方法:
答案 1 :(得分:3)
您可以使用phonetic algorithm,例如Soundex来查找听起来相似的匹配。
PostgreSQL有一个名为fuzzystrmatch的模块,其中的文档显示了使用Soundex,Levenshtein,Metaphone和Double Metaphone的示例。
答案 2 :(得分:1)
我确信我读到谷歌会保留用户在没有结果时重新输入的内容列表。您可以保留这些值的映射(例如,重新输入的字符串是否以相同的字母开头)。