我有数百万行的表格。现在,当用户在从表中搜索字符串或单词时出现任何拼写错误时,我想从表中推荐用户正确的单词或字符串。我正在使用 jaro-winkler 算法来比较字符串的距离,但是由于我的数据库很大,所以我的查询在执行时花费了很多时间。在应用 jaro-winkler 算法之前我必须如何最小化数据。
有没有其他更好的方法可以从大表中获得快速搜索推荐。
我想在没有自动建议的情况下构建类似谷歌搜索的搜索。我正在使用我的 sql 数据库。
请推荐。
最佳答案
您可能想尝试 SOUNDEX https://en.wikipedia.org/wiki/Soundex询问。 https://msdn.microsoft.com/en-us/library/ms187384.aspx
- 修改表格并为单词的发音添加一列
- 更新表格以填写单词的发音
- 在 soundex 列上添加一个 INDEX
- SELECT * FROM Table WHERE WordSoundex = SOUNDEX(@query)
关于database - 大数据库搜索推荐/建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32884357/