Поиск в punycode

у меня есть немного punycodes в mongoDB, Мне нужно искать их по запросам пользователей по их родным языкам. Я могу найти его, если пользователь ввел полный адрес, но если он ввел часть адреса, я не могу их найти. Это не настоящий код, но я делаю что-то вроде этого:

//$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?

0

Решение

Я добавил новое поле в базу данных, где хранится URL на родном языке. И на стороне сервера я выбрал, по какому полю делать поиск

$query = 'tä';
$punycode = Heplper::punycodeEncode($query);
$field = Heplper::isPunycode($punycode) ? 'ref_host_native' : 'ref_host';
$condition = [$field => ['$regex' => $query],];
$result = CwShow::findAggregateSum($condition);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]