Bukvarix, я с Вами полностью согласен и понимаю, что под фильтр может попасть и нужное. для себя я планирую разделить базу на две: основную и дополнительную, т.е. все что попадает под фильтр не удалять, а перемещать в дополнительную базу. нужно еще подумать над исключениями, как Вы правильно написали выше.
по фильтру, я не вдавался в особенности других языков, а написал мелкую утилитку для подсчета количества слов длинной от 2 до 4 символов. она может пригодится для быстрого поиска признаков фильтрации.
<?php $ff = fopen("EnglishKeywordsExtended.txt_filter2", "r"); if($ff) { $out = array(); $in = ''; while( !feof($ff) ){ $in .= fread($ff, 10000000); preg_match('%^(.*[\r\n]+)(.*)$%s', $in, $nn); $in = @$nn[2]; if( preg_match_all('%\b([a-z]{2,4})\b%is', @$nn[1], $mm) ){ foreach( $mm[1] as $m ){ @$out[$m]++; } } } fclose($ff); arsort($out); foreach( $out as $key=>$d ){ if( $d>20 ){ echo "$key\t$d\n"; } } }
утилитка читает файл блоками по 10мег (если памяти мало, то нужно уменьшить этот параметр), результат выводит в STDOUT (лень было в файл писать :) поэтому запускать ее нужно строкой:
php wordcount.php >result.txt
результат будет в таком виде
de 39932486 en 9224777 la 8895811 para 6559805 el 5666458 di 4774974 da 2784597 que 2754323 le 2245602 del 2224840 como 2096231 los 1741199 mi 1593713 es 1583503 las 1577259 em 1457229 les 1370048 il 1319501 du 1306539 un 1236686 con 1216415 te 1119701 si 1034427 tu 1009043
наибольший эффект получается при запуске утилитки на уже отфильтрованном файле, она позволяет найти и дополнить признаки фильтрации.
при запуске на всей базе придется сильно чистить результат.
насколько я помню, не равенство медленно работает.
вспомнил еще рабочий финт ушами с левым джойном :)
SELECT t1.id FROM table1 t1 left join table2 t2 on (t1.id=t2.id) WHERE t2.id IS NULL
запрос выдаст id из первой таблицы, которых нет во второй.
переставив таблицы местами можно получить id из второй таблицы, которых нет в первой.
попробуйте так, может и прокатит..
SELECT t1.id FROM table1 t1, table2 t2 WHERE t1.id=t2.id
индексы по полю id должны быть на обоих таблицах.
если не прокатит, то можно тупо и в лоб за несколько итераций, меняя диапазон отбора
SELECT t1.id FROM table1 t1, table2 t2 WHERE t1.id<1000000 and t1.id=t2.id
эээ... пересечение - это WHERE t1.id=t2.id, в Вашем условии - дополнение (кажись так это называется).
Если кому нужно, то за пару часов набросал фильтр для зачистки от не английских ключевиков
grep -v -E "\b(de|das|wie|des|dar|mit|uhr|las|les|zu|el|en|la|le|il|tu|te|va|vo|du|di|da|mi|ma|et|em|si|cu|ki|um|es|ou|sus|sua|para|eme|cie|que|una|hai|por|esta|frei)\b" EnglishKeywordsExtended.txt >result.txt
даже при таком хаотичном составлении фильтра, подбиралось и анализировалось глазами, результирующий файл полегчал на 2.7 гига.
посмотреть/сохранить отфильтрованное:
grep -E "\b(de|das|wie|des|dar|mit|uhr|las|les|zu|el|en|la|le|il|tu|te|va|vo|du|di|da|mi|ma|et|em|si|cu|ki|um|es|ou|sus|sua|para|eme|cie|que|una|hai|por|esta|frei)\b" EnglishKeywordsExtended.txt >filtred.txt
метод фильтрации - рабочий, можно автоматизировать поиск признаков и создание фильтра на основе подсчета часточности, но это нужно уже писать небольшой код. :)
если копнуть глубже, то можно и по разным языкам разбирать ключевики.
проще всего отфильтровывать при помощи частоупотребимых не английских слов, например предлогов.
фильтрация только одного предлога убрала 1.2 гига.
grep -v " de " EnglishKeywordsExtended.txt >result.txt
достаточно просто глазами просмотреть файл, чтобы найти дургие признаки для фильтрации, например: das, el, la и т.д.
А точно все летает на тестовом? Ваши тестовые тесты с прошлого топика: /ru/forum/comment/14369449
"Ожидания" винды тоже больше тысячи, юникс - 50
Вполне логичный ответ, я пытался Вам донести это в прошлом топике.
Настроенному Linux/Unix хватит и 512 рама, но т.к. тонкими настройками никто заниматься не будет, то возьмите памяти 1 гиг и спите спокойно.
ps: как я понимаю, выбор Windows 2012 у Вас обусловлен только этим единственным пунктом "Администратор то есть".
ну и тоже нормальное явление...: "Он не может понять в чем дело" 😂
при чем тут file_get_contents?
там данные возвращаются яваскриптом через аякс запросы. затем полученная пачка джейсонов(json) отрисовывается яваскриптом.
ps: у тезов есть апи
Под ОС UNIX - обычно подразумевается *BSD.
Используют.---------- Добавлено 12.03.2016 в 11:30 ----------
А мне как-то дико только для PHP+MySQL ставить Windows, со всеми вытекающими в виде IIS и т.д.
Одно дело когда используется MSSQL или какие-то виндовые прибамбасы и без винды никак, а тут просто пхп+мускул.
тыц
недостающие символы
что подразумвается под откликом?
- установка соединения (без отклика - не будет соединения)
- начло передачи первого байта страницы
- получение страницы (только хтмл)
- полная загрузка страницы
во всех случаях скорость будет зависить от умения админа, который настраивал сервер и от рук програмиста, который делал сайт.
из практики: может быть банальное отсутствие индекса сильно тормозить весь сайт. или бывает, что логика "чудо програмиста" делает сотню sql запросов и тщательно обрабатывает их пхп, когда это можно было сделать всего лишь парой sql запросов.
не глядя и в общем случае для веба, я бы отдал предпочтение unix/linux чем win.
- более устойчивое и предсказуемое поведение.
- меньше накладных расходов и соотвественно меньшие требования к железу, да и скорость думаю будет выше.
- лицензия фрии, это тоже полезно.