Search 构建IDNA域的搜索
我们正在升级我们的系统以获得IDNA支持,但我目前正在努力进行域搜索。在我们的域名组合中,您可以搜索域名。IDNA域在我们的数据库中保存为它们的A标签(Search 构建IDNA域的搜索,search,idn,Search,Idn,我们正在升级我们的系统以获得IDNA支持,但我目前正在努力进行域搜索。在我们的域名组合中,您可以搜索域名。IDNA域在我们的数据库中保存为它们的A标签(café-modern.com保存为xn--caf-modern-d7a.com),我们在浏览器中显示时将其转换为U标签 问题是这完全破坏了我们的搜索。 当有人搜索café-modern.com时,我可以轻松地将其转换为IDNA值,并将其用于数据库查询的WHERE domain_\u name LIKE?部分,但当有人只搜索café(xn--ca
café-modern.com
保存为xn--caf-modern-d7a.com
),我们在浏览器中显示时将其转换为U标签
问题是这完全破坏了我们的搜索。当有人搜索
café-modern.com
时,我可以轻松地将其转换为IDNA值,并将其用于数据库查询的WHERE domain_\u name LIKE?
部分,但当有人只搜索café
(xn--caf dma
)时,也应该找到café-modern.com
一个解决方案是在数据库中保存A标签和U标签值,但这是我想保留的最后手段,因为数据集非常大,我希望数据库模式尽可能简单。这很正常。我一直在使用类似的系统。我认为你的设计是错误的。不应该保存为like(xn--caf-modern-d7a.com),您可以在DB上保存为like(café-modern.com)。在DB上录制时,必须将IDNA值转换为UTF8值(或另一个值)。因此,您可以在
WHERE domain\u name LIKE?
中搜索café-modern.com
和café