Определять языки; CakePHP updateAll Bad Performance

ОБНОВЛЕНИЕ: Я думаю, что обновление cakePhp Все проблемы. Если я раскомментирую updateAll и получу результаты, я получу за 1-2 секунды столько же обнаружений языка, сколько за 5 минут !!!! Я только должен обновить одну строку и могу определить эту строку с автором и названием … есть ли лучший и быстрый способ ???

я использую 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 текстов в одном массиве, и я думаю, что это максимум …

Возможно ли, что функцияakePhp 3.X updateAll делает это так медленно?

1

Решение

ПРОБЛЕМА БЫЛА ЧЕРНОВКА обновлениеВсе

Теперь я использую: http://book.cakephp.org/3.0/en/orm/saving-data.html#updating-data с циклом и все быстро и хорошо

use Cake\ORM\TableRegistry;

$articlesTable = TableRegistry::get('Articles');

for ($i = 1; $i < 460000; $i++) {
$oneArticle = $articlesTable->get($i);

$languageCode = DetectLanguage::simpleDetect($oneArticle->lyrics);

$oneArticle->lang = $languageCode;
$articlesTable->save($oneSong);
}
0

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

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

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