考虑到你的地方存储在数据库中的数据:SQL - 与LIKE操作搜索数据库
Hello my name is Tom I like dinosaurs to talk about SQL.
SQL is amazing. I really like SQL.
我们要实现一个网站搜索,让游客进入条件并返回相关记录。用户可以搜索:
Dinosaurs
和SQL:
WHERE articleBody LIKE '%Dinosaurs%'
科佩斯罚款返回正确的记录集。
但是,如果用户误拼恐龙,我们将如何应对? IE:
Dinosores
(可怜的dino)。我们如何搜索允许拼写错误?我们可以将我们在搜索中看到的常见拼写错误与正确的拼写关联起来,然后搜索原始词语+已纠正的词语,但这需要很长时间才能维护。
以任何方式编程?
编辑
显示SOUNDEX可以帮助,但任何人都可以使用同音其中输入搜索项给我一个例子:
Dinosores wrocks
返回记录,而不是这样做的:
WHERE articleBody LIKE '%Dinosaurs%' OR articleBody LIKE '%Wrocks%'
哪个会返回squadoosh?
Levenshtein距离或者探测法 – 2011-03-03 15:26:00
根据您正在使用的数据库的例子......有一些可以用来获得一个文字“匹配”,“探测法”功能听起来像...... – 2011-03-03 15:26:26
我不认为这可以纯粹在SQL中完成。通配符搜索已经很慢了。我宁愿使用像Apache Lucene或Solr这样的成品。 – Wukerplank 2011-03-03 15:28:47