【问题标题】:Correct non existent domain name to nearest match将不存在的域名更正为最接近的匹配
【发布时间】:2012-10-10 14:22:54
【问题描述】:

我正在寻找一种服务,它可以告诉您一个不存在的域的最近匹配,因为它被用户拼错了。例如,如果用户写了“hotmail.con”,则发送一个带有它的查询并获得结果“hotmail.com”。

【问题讨论】:

    标签: error-correction


    【解决方案1】:

    您选择了一个难题。域的长度可以是 1-63 个字符,应包含字符 [a-z0-9-],并且不应以连字符开头。蛮力强迫它不是一种选择。如果用户键入 hotmail.con,您可以搜索它的拼写错误,这将尝试 homail.comhotmale.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”。有一个以它开头的最近访问的域名的下拉列表。

    【讨论】:

    • 非常感谢!当您在搜索框中输入拼写错误的单词时,我正在考虑 Google 会做什么。你的解释和链接真的很有用!
    猜你喜欢
    • 2011-03-01
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多