我正在寻找一种服务,它可以告诉您不存在的域的最近匹配,因为它被用户拼错了。例如,如果用户写了“hotmail.con”,则发送一个带有它的查询并获得结果“hotmail.com”。
1 回答
你选择了一个难题。域的长度可以是 1-63 个字符,应包含字符 [a-z0-9-],并且不应以连字符开头。蛮力强迫它不是一种选择。如果用户在 hotmail.con 中键入,您可以搜索它的拼写错误,其中会尝试 homail.com
and hotmale.com
,这可能是也可能不是准确的域名,谁知道哪个拼写错误是正确的?计算机必须向用户返回一个选项列表:“您是指这个域名,还是那个域名?”。
您可能对 Peter Norvig 的拼写校正器感兴趣,Google 用它来检查输入的查询。它是地球上最好的拼写校正器之一。
http://norvig.com/spell-correct.html
如果您拥有一组正确且最新的域名,则 Peter Norvig 的拼写检查器应该可以工作。您可以即时创建自己的列表,方法是保留用户访问过的站点的列表,并将这些站点用作要检查的域名主体。这样,当用户选择“hotmail.con”时,它会在您的列表中找到 hotmail.com。但是,这并不能防止用户意外访问:“hotmale.com”。因为那是一个有效的网站。
这是有关如何获取所有域名的stackoverflow qustion:
https://stackoverflow.com/questions/4539155/how-to-get-all-the-domain-names
最好的想法是跳出框框思考,像 Firefox 那样去做。当用户开始输入 hotmail.com 时,他们通常会单击一个文本框,输入“h”,然后输入“o”。有一个以它开头的最近访问的域名的下拉列表。