Отсев похожих записей?

Здравствуйте!


У нас в проекте пользователи добавляют материал — это текстовая строка, длинной до 300 символов.

Очень много встречается дубликатов. Хотел бы при добавлении сделать проверку: если добавляемая строка похоже на 90% с уже добавленными, то не давать добавить.


В качестве БД используется MySQL.


На данный момент пришло в голову решение такое:


— убираем из строки все знаки препинания и пробелы

— опускаем в нижний регистр

— делаем md5 хеш полученного

— добавляем хеш в отдельное поле в БД

— при добавлении нового — сверяем, нет ли такого в БД


Решение не самое лучшее, возможно есть что-нибудь по лучше?


P.S. Записей примерно 10 тыс. в сутки добавляется 500 новых. Есть возможность задействовать sphinx, но не нашел в нем похожего функционала.

Sphinx    

301   5   01:03, 16th August, 2020


Оптимальный способ переустановки ubuntu?

На моей домашней машине ubuntu живет еще с версии 8.04. Каждые пол года она благополучно апдейтилась с помшью команды distr-upgrade.


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


Хомяк у меня на отельном разделе так что первая проблема решается сравнительно легко (просто не форматировать его).


А вот как быть со списком пакетов и репозиториев? Я знаю что можно сохранить список установленых пакетов в файл и потом установить все пакеты из этого файла. Но, во-первых, что делать с пакетами которые будут устаревшими в новой убунте (зачем мне из ставить, если они уже не нужны?), а, во-вторых, что делать если какие-либо пакеты будут отсутствовать?


Еще одна возможная «заковырка» в том что у меня хомяк(и еще один раздел с мультимедиа) созданы поверх LVM. Может ли последняя ubuntu корректно их определить или нужны будут танцы с бубном? Но, в принципе, больше всего меня интересует как установить только нужные пакеты? С LVM, думаю, разберусь как-то.

Ubuntu    

340   2   00:57, 16th August, 2020


почему загрузки иногда помечаются md5, sha1 и другими индикаторами hash?

Я видел это повсюду:

Скачать здесь! В SHA1 = 8e1ed2ce9e7e473d38a9dc7824a384a9ac34d7d0

Что это значит? Как hash входит в игру, насколько загружается и... Что я могу сделать из этого? Является ли это устаревшим элементом, где вам приходилось проверять некоторую контрольную сумму после загрузки всего файла?

hash   checksum   download    

784   7   00:51, 16th August, 2020


Какой ваш любимый инструмент профилирования (для C++)

До сих пор я использовал только рациональную количественную оценку. Я слышал много хорошего о Intel VTune, но никогда не пробовал его!

Edit: я в основном ищу программное обеспечение, которое будет измерять код, поскольку я думаю, что это единственный способ получить очень хорошие результаты.


Смотреть также:

Каковы некоторые хорошие профилировщики для native C++ на Windows?

c++   performance   profiling    

505   21   00:49, 16th August, 2020


Русский язык в продуктах 37signals?

Есть ли информация насколько вероятно появление в ближайшее время русского языка в продуктах 37signals.com? В том числе, и допиливание того, что уже реализовано в Basecamp?


Философия компании, отраженная в книге Rework не позволяет и смотреть в сторону всяких Zoho и еже с ними, но вот отсутствие великого и могучего сильно охлаждает пыл.


P.S. Одному мне кажется, что формирование тарифных планов — не основной козырь компании, во всяком случае в части не all inclusive клиентов.

CRM    

239   1   00:43, 16th August, 2020


Утилита-враппер для юникода?

Ищется консольная утилитка, представляющая собой враппер над другими программами, перекодирующая stdin и stdout как надо. Собственно, нужна она когда коннектишься куда-то по ssh, а там какой-нибудь KOI-8, если не cp1251. Когда в прошлый раз напоролся, подсказали название, но я его, увы, запамятовал. Подскажите, если знает кто.

Linux   Unicode    

296   2   00:34, 16th August, 2020


Почему сервер Sql 2005 планы обслуживания использовать ту базу данных для инструкции DBCC CHECKDB будут?

Это проблема, которую я видел у других людей, кроме меня, и я не нашел хорошего объяснения.

Допустим, у вас есть план обслуживания с задачей проверить базу данных, что-то вроде этого:

USE [MyDb]
GO
DBCC CHECKDB with no_infomsgs, all_errormsgs

Если вы посмотрите в свои журналы после выполнения задачи, вы можете увидеть что-то вроде этого:

08/15/2008 06:00:22,spid55,Unknown,DBCC CHECKDB (mssqlsystemresource) executed by NT AUTHORITY\SYSTEM found 0 errors and repaired 0 errors. Elapsed time: 0 hours 0 minutes 0 seconds.
08/15/2008 06:00:21,spid55,Unknown,DBCC CHECKDB (master) executed by NT AUTHORITY\SYSTEM found 0 errors and repaired 0 errors. Elapsed time: 0 hours 0 minutes 0 seconds.

Вместо того, чтобы проверить MyDb, он проверил Мастер и msssqlsystemresource.

Почему?

Мой обходной путь-создать задание агента сервера Sql с этим:

dbcc checkdb ('MyDb') with no_infomsgs, all_errormsgs;

Это всегда прекрасно работает.

08/15/2008 04:26:04,spid54,Unknown,DBCC CHECKDB (MyDb) WITH all_errormsgs<c/> no_infomsgs executed by NT AUTHORITY\SYSTEM found 0 errors and repaired 0 errors. Elapsed time: 0 hours 26 minutes 3 seconds.

sql-server   sql-server-2005    

394   3   00:31, 16th August, 2020


Как вы отделяете логику игры от дисплея?

Как можно сделать так, чтобы количество кадров дисплея в секунду не зависело от логики игры? Таким образом, логика игры работает с одинаковой скоростью независимо от того, насколько быстро видеокарта может визуализировать.

algorithm    

455   8   00:16, 16th August, 2020


Использование шрифтов GLUT bitmap

Я пишу простое приложение OpenGL , которое использует GLUT . Я не хочу свернуть свой собственный код рендеринга шрифтов, вместо этого я хочу использовать простые шрифты bitmap, которые поставляются с GLUT . Каковы шаги, чтобы заставить их работать?

opengl   fonts   bitmap   glut    

651   1   00:13, 16th August, 2020