繁体   English   中英

在php / mysql中搜索拼写错误的最佳方法是什么?

[英]What's the best way to implement typo correction into a search in php/mysql?

我有一个列出电影的网站。 当然人们在搜索电影时会犯拼写错误,当然有些电影有撇号,用字母拼出标题中的数字等等。

如何让我的搜索脚本忽略这些错误? 可能需要比WHERE mov_title LIKE '%keyword%'更聪明的东西。

有人建议我使用全文搜索引擎,但所有这些看起来都非常复杂,我觉得将它们构建到我的应用程序中就像地狱一样。 如果我必须使用一个,哪个是最不具侵入性的,那么在现有代码中实现最无痛苦?

我认为你必须实现一个外部全文搜索引擎。 MySQL只是不擅长全文搜索。 我会说你应该给Lucene一个去( 教程 )。 Zend Framework有一个插入Lucene 的API ,使其更容易学习和使用。

假设你使用MySQL - MySQL没有能够做到这一点的内置功能。

这意味着您必须自己实施全文搜索,或使用第三方全文搜索工具。

  • 如果你自己实现它,你应该调查metaphone双metaphone算法(我推荐它们超过soundex,这在这类任务上并不是那么好),以存储所有单词的phoenetic表示。 但是,建立自己的全文搜索对于胆小的人来说不是任务。 如果您不认为自己是数据库向导,请不要尝试它。
  • 如果你想要第三方工具, Lucene就是你的选择。 它被移植到许多不同的语言/平台, 包括PHP - 您不必使用Java。

我既不使用php也不使用mysql,但是全文搜索的替代方法可能是soundex搜索

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM