使用php / sql在我的网站上创建搜索功能,非常简单-只需使用LIKE子句在数据库上使用SELECT ALL查询并在页面上回显结果。我的问题是,如果用户输入了错误的搜索查询,我该如何添加拼写建议。除非搜索词与数据库内容完全匹配,否则MySQL不会返回任何内容,例如“ Dofs”不会返回“ Dogs”。那么如何添加拼写建议呢?
谢谢。
接着您会发现彼得·诺维格(Peter Norvig)撰写的出色文章,介绍如何编写拼写检查器:
http://www.norvig.com/spell-correct.html
和以下两个链接是本文中找到的代码的PHP实现:
http://www.phpclasses.org/browse/package/4859.htmlhttp://soundofemotion.com/spellcorrect.txt
希望这会有所帮助。
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个库。
除了Joe's excellent solution之外,您还可以进行肥皂呼叫以提供替代的拼写(基于搜索引擎的语言语料库)
Yahoo拼写建议:http://developer.yahoo.com/search/web/V1/spellingSuggestion.html
Google拼写要求:http://code.google.com/apis/soapsearch/reference.html#1_3
2020年3月来到这里,那么https://tigitz.github.io/php-spellchecker/值得一看。
来自文档:
PHP-Spellchecker是PHP的拼写检查程序抽象库。通过为许多不同的拼写检查器提供统一的界面,您可以交换拼写检查器而无需大量重写。
使用PHP-Spellchecker可以消除供应商锁定,减少技术负担,并提高代码的可测试性。