X-Software: Логика предельно простая: есть в файле определенное кол-во строк. Если у нас есть 1 условие проверки, то программа делает следующее: проходит файл построчно и выполняет 1 условие на каждую строку. Если у нас есть 2 условия, то на каждую строку выполняются уже 2 условия. И если у нас в файле, например, миллиард строк, то в первом случае у нас был миллиард операций, а во втором - 2 миллиарда операций поиска подстроки в строке. Это, так или иначе, пропорционально увеличивает расход процессорного времени и на больших объемах при увеличении количества условий скорость пропорционально падает.
Понятно, спасибо за разъяснение.
Однако не понятно, почему когда я просто делаю выборку по одной фразе (слово+слово), время одно.
А когда то же самое, но с сохранением в файл (Слово:=Имя_файла.txt), время увеличивается в 1.5-2 раза.
Неужели сохранение в файл требует так много дополнительных действий?
Повторюсь, выборка производится по одной фразе.
И еще. Не понятно, почему Вы считаете условие "#слово+#слово" какой-то дополнительной, неизвестно зачем нужной фишкой. Это - первое, что должно было бы быть в программе.
Делаю выборку по условию "нейл+арт"
В результатах:
картинка нейлонового протеза
диснейленд орландо на карте
порно фото рассказы картинки девочек в нейлоне...
и т.д.
А нужен - "нейл арт"
Мусора больше половины, только потому, что невозможно ограничение сделать.
И так каждый раз. Понятно, что потом можно чистить регулярками и т.д. Но непонятно, почему это нельзя внедрить в прогу. Условие "#слово" - есть, а условия "#слово+#слово" - нету.
Sobes: Здравствуйте. Первое время был впечатлён результатами Вашей , действительно уникальной и очень полезной прогой.
Однако, бесплатный сыр бывает только в Мышеловке.
За очень короткое время 3 HDD вышли из строя.
Причём вышли именно те, где стоял Букварикс.
Видимо, файловая система настолько неприспособлена к NTFS, что диски с ума сходят!
В результате ущерб - более 10 тыс. рублей. Не думайте, что это претензия. Просто было бы полезно указать, что без SSD не рекомендуется пользоваться Вашей программой, таr как это скоро приведёт к гибели обычного HD.
Sobes, харды случайно не в одном и том же месте покупали?
За температурой следите? Может охлаждение в этом месте плохое?
БП дорогой и хороший? У дешевых часто сильная пульсация по линиям +5 и +12В, а это смерть для харда.
IBakalov: MyOST, как на счет для встроенного фильтра "содержит повторы слов" добавить возможность задавать исключения? Ну чтобы не вычеркивать фразы типа "холодильник в машину в москве".
Реализовать можно по аналогии с:
Функция очень нужная! Предагал уже, почти год назад. MIND сказал, что это возможно сделать в несколько этапов. Только не объяснил как. Я до сих пор решения так и не нашел.
Время выборки для одного сова (или слово+слово) из моей базы занимает примерно 50-60 мин.
Логично было бы предположить, что если делать выборку для более чем одной фразы, время должно быть примерно таким же (+ -), с разницей только, что для каждого слова создается свой файл.
Но нет. Мало того, что итоговое время становится = время для каждого слова помноженное на количество слов (файлов) в выборке, так еще и для каждого отдельно взятого слова время увеличивается более чем в 2 раза.
Как будто программа проходит всю базу сначала для одного слова, потом для другого, опять с самого начала.
И + еще на что-то, так как итоговое время больше, чем если выбирать по одному слову.
То есть, для одного слова нужно 60 мин.
Ставлю на выборку по 2 словам (с условием - каждое в свой файл) - нужно примерно 3 ч.
Поставил выборку по 5 словам - за 2 часа прогресс бар сдвинулся на 1 мм. Вырубил нафик и начал выбирать по одному слову.
Bukvarix: судя по описанию ошибки в вебе это не PostgreSQL, а проблема совместимости Microsoft Visual C++ redistributable (старых и новых версий, в установке PostgreSQL включен в установщик).
Samail, Спасибо.
http://flashpaste.com/rus/
Спасибо большое за обновление!
seoquake не?
Тоже вспомнил, решил попробовать. Но как увидел этот тормознутый ужас, снес тутже. Это уже не та панелька.
Логика предельно простая: есть в файле определенное кол-во строк. Если у нас есть 1 условие проверки, то программа делает следующее: проходит файл построчно и выполняет 1 условие на каждую строку. Если у нас есть 2 условия, то на каждую строку выполняются уже 2 условия. И если у нас в файле, например, миллиард строк, то в первом случае у нас был миллиард операций, а во втором - 2 миллиарда операций поиска подстроки в строке. Это, так или иначе, пропорционально увеличивает расход процессорного времени и на больших объемах при увеличении количества условий скорость пропорционально падает.
Понятно, спасибо за разъяснение.
Однако не понятно, почему когда я просто делаю выборку по одной фразе (слово+слово), время одно.
А когда то же самое, но с сохранением в файл (Слово:=Имя_файла.txt), время увеличивается в 1.5-2 раза.
Неужели сохранение в файл требует так много дополнительных действий?
Повторюсь, выборка производится по одной фразе.
И еще. Не понятно, почему Вы считаете условие "#слово+#слово" какой-то дополнительной, неизвестно зачем нужной фишкой. Это - первое, что должно было бы быть в программе.
Делаю выборку по условию "нейл+арт"
В результатах:
картинка нейлонового протеза
диснейленд орландо на карте
порно фото рассказы картинки девочек в нейлоне...
и т.д.
А нужен - "нейл арт"
Мусора больше половины, только потому, что невозможно ограничение сделать.
И так каждый раз. Понятно, что потом можно чистить регулярками и т.д. Но непонятно, почему это нельзя внедрить в прогу. Условие "#слово" - есть, а условия "#слово+#слово" - нету.
Спасибо.
Здравствуйте. Первое время был впечатлён результатами Вашей , действительно уникальной и очень полезной прогой.
Однако, бесплатный сыр бывает только в Мышеловке.
За очень короткое время 3 HDD вышли из строя.
Причём вышли именно те, где стоял Букварикс.
Видимо, файловая система настолько неприспособлена к NTFS, что диски с ума сходят!
В результате ущерб - более 10 тыс. рублей. Не думайте, что это претензия. Просто было бы полезно указать, что без SSD не рекомендуется пользоваться Вашей программой, таr как это скоро приведёт к гибели обычного HD.
Sobes, харды случайно не в одном и том же месте покупали?
За температурой следите? Может охлаждение в этом месте плохое?
БП дорогой и хороший? У дешевых часто сильная пульсация по линиям +5 и +12В, а это смерть для харда.
MIND, опять немного не то.
Таким образом, фраза "адапторы для наушников для телефона телефона" тоже не попадает под фильтр, потому что стоит исключение "для".
А нужно, чтобы "адапторы для наушников для телефона телефона" фильтровалась, а фразу "адапторы для наушников для телефона" не затрагивало.
То есть, даже если во фразе присутствуют повторы исключаемых слов, но есть повторы любых остальных слов, чтоб попадало под фильтр.
А если повторов любых других слов нету, а только повторы слов, которые мы исключаем, чтобы под фильтр не попадало.
Возможно такое?
MyOST, как на счет для встроенного фильтра "содержит повторы слов" добавить возможность задавать исключения? Ну чтобы не вычеркивать фразы типа "холодильник в машину в москве".
Реализовать можно по аналогии с:
Функция очень нужная! Предагал уже, почти год назад. MIND сказал, что это возможно сделать в несколько этапов. Только не объяснил как. Я до сих пор решения так и не нашел.
Время выборки для одного сова (или слово+слово) из моей базы занимает примерно 50-60 мин.
Логично было бы предположить, что если делать выборку для более чем одной фразы, время должно быть примерно таким же (+ -), с разницей только, что для каждого слова создается свой файл.
Но нет. Мало того, что итоговое время становится = время для каждого слова помноженное на количество слов (файлов) в выборке, так еще и для каждого отдельно взятого слова время увеличивается более чем в 2 раза.
Как будто программа проходит всю базу сначала для одного слова, потом для другого, опять с самого начала.
И + еще на что-то, так как итоговое время больше, чем если выбирать по одному слову.
То есть, для одного слова нужно 60 мин.
Ставлю на выборку по 2 словам (с условием - каждое в свой файл) - нужно примерно 3 ч.
Поставил выборку по 5 словам - за 2 часа прогресс бар сдвинулся на 1 мм. Вырубил нафик и начал выбирать по одному слову.
Почему так? Какова логика работы?
судя по описанию ошибки в вебе это не PostgreSQL, а проблема совместимости Microsoft Visual C++ redistributable (старых и новых версий, в установке PostgreSQL включен в установщик).
Вот, например, предложение решения проблемы (в самом низу страницы):
http://forums.enterprisedb.com/posts/list/3897.page
Спасибо большое! Помогло.