1

我有数百万行的表。现在,当用户在从表中搜索字符串或单词时出现任何拼写错误时,我想建议用户从表中更正单词或字符串。我正在使用 jaro-winkler 算法来比较字符串的距离,但是由于我的数据库很大,我的查询在执行过程中花费了很多时间。在应用 jaro-winkler 算法之前,我必须如何最小化数据。

有没有其他更好的方法可以让我从大表中获得快速搜索推荐。

我想在没有自动建议的情况下构建类似谷歌搜索的搜索。我正在使用我的 sql 数据库。

请建议。

4

1 回答 1

0

您可能想尝试 SOUNDEX https://en.wikipedia.org/wiki/Soundex查询。 https://msdn.microsoft.com/en-us/library/ms187384.aspx

  • ALTER 表格并为单词的 soundex 添加一列
  • 更新表格以填写单词的 soundex
  • 在 soundex 列上添加一个 INDEX
  • SELECT * FROM Table WHERE WordSoundex = SOUNDEX(@query)
于 2015-10-01T11:34:25.857 回答