UPDATE: Я думаю, что проблема cakePhp updateAll является проблемой. Если я раскомментирую updateAll и pr результаты, я получаю через 1-2 секунды так много детектирования языка, как через 5 минут !!!! Я должен только обновить одну строку и определить эту строку с автором и названием ... есть лучший и быстрый способ?Определить языки; CakePHP updateAll Bad Performance
Я использую detectlanguage.com, чтобы обнаружить все английские тексты в моей базе данных sql. Моя база данных состоит из 500 000 строк. Я пробовал многое, чтобы быстрее обнаружить язык всех моих текстов. Теперь это займет много дней ...:/
- я только отправить 20% текста (смотрите на мой код)
- я попытался скопировать мою функцию и запустить функцию много раз. скопированный код показывает функцию для всех текстов с заголовком, начинающимся с A
Я могу одновременно запускать 6 функций ... (localhost) ... Я попробовал 7-ю функцию на новой вкладке, но
Ожидание доступного сокета ....
public function detectLanguageA()
{
set_time_limit(0);
ini_set('max_execution_time', 0);
$mydatas = $this->datas;
$alldatas = $mydatas->find('all')->where(['SUBSTRING(datas.title,1,1) =' => 'A'])->where(['datas.lang =' => '']);
foreach ($alldatas as $row) {
$text = $row->text;
$textLength = round(strlen($text)*0.2);
$text = substr($text,0,$ltextLength);
$title = $row->title;
$author = $row->author;
$languageCode = DetectLanguage::simpleDetect($text);
$mydatas->updateAll(
['lang' => $languageCode], // fields
['author' => $author,'textTitle' => $title]); // conditions*/
}
}
Я надеюсь, что кто-то есть идея для моей проблемы ... Теперь определение языка для всех моих текстов будет принимать больше, чем один неделя: /:/
Мой компьютер работает более 20 часов с небольшими перерывами только ... Но я только обнаружил язык около 13,000 текстов ... И в моей базе данных, 500.000 тексты ...
- Теперь я пытался посылать тексты партии, но его также замедлить ... Я всегда отправить 20 текстов в одном массиве и я думаю будет максимум ...
возможно ли, что UpdateAll-функция CakePHP 3.X делает так медленно?
Какой план вы используете? Вы попадаете в пределы API? –
Текущий план - Плюс 1M запросов/день 200 МБ/день Я не нажимаю на границы ... –
Вы пытались отправить тексты по партии? Это должно быть быстрее: https://github.com/detectlanguage/detectlanguage-php#batch-detection –