ZebroidФорумПубличный разделПредложенияАрхивУскорить поиск дублей

Ускорить поиск дублей

23 марта 2011, 06:29
Зарегистрирован: 26 апреля 2010, 01:51
Для 5000 записей поиск дублей работал всю ночь.

Обработал 12%.

Предлагаю ускорить.



27 октября 2011, 06:40
Зарегистрирован: 10 апреля 2012, 00:00
Добавил еще один вариант быстрого поиска: на основе количества слов. Если текст отличаются по количеству слов на больший процент, чем допустимый, то они уже не могут удовлетворять условия (кроме очень редких случаев), потому и сравнивать их не имеет смысла.

Провел тест на проекте:

Постов: 305

Знаков без пробелов: 7 077 888

Знаков с пробелами: 8 494 141

Cреднее число знаков б/п на статью: 23 206


Результаты:

Обычный поиск (допустимый процент совпадений 20%):

Разбивка статей на шинглы: 180 сек

Сравнение статей и поиск дубликатов: 260 сек

Быстрый поиск (допустимый процент совпадений 20%):

Разбивка статей на шинглы: 180 сек

Сравнение статей и поиск дубликатов: 30 сек

---

Итак, как можно увидеть реальное увеличение быстродействия на оптимизируемом участке 766%, общее увеличение быстродействия поиска дубликатов - 109%



27 октября 2011, 07:48
Зарегистрирован: 26 апреля 2010, 01:51
А полное совпадение статей (не заголовков) будет сделано?

Просто у меня в 10 тысячах статей всю ночь работал Зеброид и в районе 10% подвис из-за нехватки памяти.



27 октября 2011, 07:58
Зарегистрирован: 10 апреля 2012, 00:00
А полное совпадение статей (не заголовков) будет сделано?

Просто у меня в 10 тысячах статей всю ночь работал Зеброид и в районе 10% подвис из-за нехватки памяти.


Зачем? Что мешает указать 1% и тогда программа будет сравнивать статьи который имеют практически идентичное количество слов?



27 октября 2011, 08:51
Зарегистрирован: 26 апреля 2010, 01:51
То есть прога будет работать быстрее при уменьшении процентов совпадения?



27 октября 2011, 09:31
Зарегистрирован: 10 апреля 2012, 00:00
Да, потому что как я уже писал

Если текст отличаются по количеству слов на больший процент, чем допустимый, то они уже не могут удовлетворять условия (кроме очень редких случаев), потому и сравнивать их не имеет смысла.




27 октября 2011, 10:20
Зарегистрирован: 26 апреля 2010, 01:51
Действительно дело пошло намного шустрее.



27 октября 2011, 10:48
Зарегистрирован: 26 апреля 2010, 01:51
Поспешил с выводами, быстро дошло до 6% и застряло. Уже 20 минут не движется.

Полное совпадение будет работать на порядок быстрее, потому что будет тупое сравнение двух строк и все.

По сути можно сделать через select distinct



27 октября 2011, 10:50
Зарегистрирован: 10 апреля 2012, 00:00
Поспешил с выводами, быстро дошло до 6% и застряло. Уже 20 минут не движется.

Полное совпадение будет работать на порядок быстрее, потому что будет тупое сравнение двух строк и все.

По сути можно сделать через select distinct


Классно вы тестируете, ничего что обновление еще не вышло? :D



27 октября 2011, 13:05
Зарегистрирован: 26 апреля 2010, 01:51
Я про ползунок на количество процентов совпадения - влияет ли он на скорость работы уже сейчас.