搜索引擎的'你是说'

时间:2010-08-05 14:02:09

标签: php search-engine

  

可能重复:
  How does the Google “Did you mean?” Algorithm work?

我有一个包含大约200万条记录的数据库表。我正在使用mysql全文搜索,但用户经常输入坏词ex gmes - >应该是游戏,所以我需要一个带有PHP包装器的库,以便像谷歌一样具有'你的意思'我应该使用什么?

5 个答案:

答案 0 :(得分:3)

您可以使用像Yahoo Spelling Suggestion这样的API作为完成它的简单方法,而不必自己动手。

答案 1 :(得分:1)

索引是单词列表及其出现的位置。例如。游戏发生在第123行和第456行。如果你有一个包含所有单词的列表,你可以轻松搜索匹配最佳的单词。这样,你可以将gmes与游戏匹配。

但是,MySQL提供的索引无法实现这一点。

答案 2 :(得分:1)

如果您不打算依赖第三方网站,您肯定需要使用levenshtein算法自己的字典来了解用户条目与字典术语的接近程度

答案 3 :(得分:1)

如果您的查询非常通用,您可以使用Yahoo Spelling API等。但是,如果您有特定于域的词汇表,那么最好使用Apache Solr

您可以使用它来索引2MM记录,简单!并将其用作具有分面等的搜索服务器。它还会从您的记录中生成一个拼写检查索引,您可以将其用于“你的意思”吗?或自动建议功能。由于其RESTful API

,因此集成到任何语言中也非常简单

底线:如果你正在寻找一个可以处理好几件事情的长期解决方案,除了拼写检查,比如搜索/自动建议/分面等等.Solr就是你要走的路。

答案 4 :(得分:0)

另一个选项是PHP Pspell functions,特别是pspell_suggest,但您需要在服务器上安装aspell library