ОБНОВЛЕНИЕ: Я думаю, что обновление cakePhp Все проблемы. Если я раскомментирую updateAll и получу результаты, я получу за 1-2 секунды столько же обнаружений языка, сколько за 5 минут !!!! Я только должен обновить одну строку и могу определить эту строку с автором и названием … есть ли лучший и быстрый способ ???
я использую detectlanguage.com для того, чтобы обнаружить все английские тексты в моей базе данных SQL. Моя база данных состоит из около 500 000 строк. Я перепробовал много вещей, чтобы быстрее обнаружить язык всех моих текстов. Теперь это займет много дней …: /
Я могу запустить только 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 текстов …
Возможно ли, что функцияakePhp 3.X updateAll делает это так медленно?
ПРОБЛЕМА БЫЛА ЧЕРНОВКА обновлениеВсе
Теперь я использую: 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);
}
Других решений пока нет …