给定一个非常大的产品名称数据库,您将如何检测用户搜索中可能存在的拼写错误并提出可能的更正建议(有点像 Google 呈现它们的方式)?
例如
用户输入“fork handels”并按下“搜索”。
他们回来
“没有结果。你是说‘叉柄’吗?”
给定一个非常大的产品名称数据库,您将如何检测用户搜索中可能存在的拼写错误并提出可能的更正建议(有点像 Google 呈现它们的方式)?
例如
用户输入“fork handels”并按下“搜索”。
他们回来
“没有结果。你是说‘叉柄’吗?”
有几种方法可以解决这个问题:
您可以使用语音算法(例如Soundex)来查找听起来相似的匹配项。
PostgreSQL 有一个名为blurstrmatch的模块,文档显示了使用 Soundex、Levenshtein、Metaphone 和 Double Metaphone 的示例。
我确定我读过谷歌保留了用户在没有结果时重新键入的内容的列表。您可以保留这些值的映射(例如,如果重新键入的字符串以相同的字母开头)。