高效 MySQL 搜索 100 万行
Efficient MySQL search for 1 Million Rows
目前我在 MySQL 数据库上使用 FULLTEXT
索引并使用简单查询
MATCH (movie) AGAINST("City of Gold")
这是目前的工作,它正在从数据库中选取正确的行。
但是现在,当出现像 Cidade de Deus 上帝之城 这样的术语时,我 运行 遇到了问题这是一个非常接近的变体,或者例如,City of Gold DVDDrip
我的问题是,基于数据库中的最大最接近匹配,匹配正确行的最佳搜索算法是什么。
我的想法:
我天真的想法是,是否有任何内置函数或算法匹配与数据库匹配的最大单词数并return结果。
我遇到过 Sphinx,但我不确定它是否解决了上述问题,还是对它来说也是一项艰巨的任务?
谢谢
有不同的算法可以匹配像 levenshtein 这样的模糊搜索。您可以从下面的 link 中获得算法的实现。它将 return 搜索短语与搜索项的距离,因此根据距离你可以 return 结果。
目前我在 MySQL 数据库上使用 FULLTEXT
索引并使用简单查询
MATCH (movie) AGAINST("City of Gold")
这是目前的工作,它正在从数据库中选取正确的行。
但是现在,当出现像 Cidade de Deus 上帝之城 这样的术语时,我 运行 遇到了问题这是一个非常接近的变体,或者例如,City of Gold DVDDrip
我的问题是,基于数据库中的最大最接近匹配,匹配正确行的最佳搜索算法是什么。
我的想法:
我天真的想法是,是否有任何内置函数或算法匹配与数据库匹配的最大单词数并return结果。
我遇到过 Sphinx,但我不确定它是否解决了上述问题,还是对它来说也是一项艰巨的任务?
谢谢
有不同的算法可以匹配像 levenshtein 这样的模糊搜索。您可以从下面的 link 中获得算法的实现。它将 return 搜索短语与搜索项的距离,因此根据距离你可以 return 结果。