使用php / sql在我的站点上创建搜索功能,非常简单 - 只需使用LIKE子句在数据库上使用SELECT ALL查询并在页面上回显结果。我的问题是,如果用户输入错误的搜索查询,我该如何添加拼写建议。除非搜索词与数据库内容完全匹配,否则Mysql不会返回任何内容,例如“Dofs”不会归还“Dogs”。那么如何添加拼写建议?
感谢。
答案 0 :(得分:5)
以下您将找到Peter Norvig关于如何编写拼写检查程序的优秀文章:
http://www.norvig.com/spell-correct.html
以下两个链接是PHP中代码中的代码实现:
http://www.phpclasses.org/browse/package/4859.html http://soundofemotion.com/spellcorrect.txt
希望这有帮助。
答案 1 :(得分:2)
PHP的pspell扩展程序怎么样?
<?php
$pspell_link = pspell_new("en");
if (!pspell_check($pspell_link, "dofs")) {
$suggestions = pspell_suggest($pspell_link, "dofs");
foreach ($suggestions as $suggestion) {
echo "Possible spelling: $suggestion<br />";
}
}
?>
此PHP扩展程序要求您安装 aspell 库。
答案 2 :(得分:0)
答案 3 :(得分:0)
除了Joe's excellent solution之外,您还可以拨打肥皂来提供备用拼写(基于搜索引擎的语言语料库)
雅虎拼写建议: http://developer.yahoo.com/search/web/V1/spellingSuggestion.html
Google拼写请求: http://code.google.com/apis/soapsearch/reference.html#1_3
答案 4 :(得分:0)
2020年3月来到这里,那么https://tigitz.github.io/php-spellchecker/值得一看。
从文档中
PHP-Spellchecker是PHP的拼写检查器抽象库。通过为许多不同的拼写检查器提供统一的界面,您可以交换拼写检查器而无需大量重写。
使用PHP-Spellchecker可以消除供应商锁定,减少技术负担,并提高代码的可测试性。