首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索双码

搜索双码
EN

Stack Overflow用户
提问于 2016-04-07 12:19:41
回答 1查看 98关注 0票数 0

我有一些punycodesmongoDB。我需要搜索他们的本地语言的用户请求。如果用户输入了完整的地址,我可以找到它,但是如果他输入了部分地址,我就找不到它们。这不是真正的代码,但我这样做:

代码语言:javascript
复制
//$punycode = 'xn--tst-qla.de'; //täst.de

$query1 = 'tä';
$query2 = 'täst';

$queryPunicode1 = Heplper::punycodeEncode($query1); //xn--t-0fa
$queryPunicode2 = Heplper::punycodeEncode($query2); //xn--tst-qla.de

$condition1 = ['ref_host' => ['$regex' => queryPunicode1],];
$result1 = CwShow::findAggregateSum($condition1); // false

$condition2 = ['ref_host' => ['$regex' => queryPunicode2],];
$result2 = CwShow::findAggregateSum($condition2); // true

$query1中查找$punycode的任何尝试都会返回false。如何在$query1中找到$punycode

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-02 16:29:06

我在数据库中添加了一个新字段,该字段以本机语言存储url。在服务器端,我选择了哪个字段进行搜索。

代码语言:javascript
复制
$query = 'tä';
$punycode = Heplper::punycodeEncode($query);
$field = Heplper::isPunycode($punycode) ? 'ref_host_native' : 'ref_host';
$condition = [$field => ['$regex' => $query],];
$result = CwShow::findAggregateSum($condition);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36475995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档