Проверка дубликаты документа и аналогичные документы в приложении управления документооборотом

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

, Если у Вас есть функция для добавления, перейти. Конструктивное изменение, ответвление. Были так много раз, где я думал, "о, я могу просто сделать это в соединительной линии, она не собирается занимать у этого много времени", и затем 5 часов спустя, когда я не могу выяснить ошибку, которая повреждает вещи, мне действительно было жаль, что я не перешел.

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

8
задан Treffynnon 31 August 2010 в 20:59
поделиться

2 ответа

Обновление: Я написал расширение PHP под названием php_ssdeep для API ssdeep C, чтобы облегчить нечеткое хеширование и сравнение хешей в PHP изначально. Более подробную информацию можно найти в моем блоге . Я надеюсь, что это будет полезно для людей.

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

Теория, лежащая в основе этого, задокументирована здесь: Идентификация почти идентичных файлов с помощью кусочного хеширования, запускаемого контекстом

ssdeep это имя программы, и ее можно запускать в Windows или Linux. Он был предназначен для использования в криминалистических вычислениях, но кажется достаточно подходящим для наших целей. Я провел короткий тест на старом компьютере Pentium 4, и мне потребовалось около 3 секунд, чтобы просмотреть хэш-файл размером 23 МБ (хэши чуть менее 135 000 файлов) в поисках совпадений с двумя файлами. Это время включает создание хэшей для двух файлов, которые я искал.

5
ответ дан 5 December 2019 в 22:19
поделиться

Я работаю над аналогичной проблемой в web2project и, поспрашивая и покопавшись, пришел к выводу, что «пользователю все равно». Наличие дубликатов документов не имеет значения для пользователя, пока они могут найти свой собственный документ по его собственному имени.

При этом я использую следующий подход:

  • Разрешить пользователь должен загрузить документ, связывающий его с любыми проектами / задачами, которые они хотят;
  • файл должен быть переименован, чтобы никто не мог получить к нему доступ через http .. или, что лучше, хранить вне корневого веб-каталога. Пользователь по-прежнему будет видеть свое имя файла в системе, и если он загрузит его, вы можете установить заголовки с «правильным» именем файла;
  • В какой-то момент в будущем обработайте документ, чтобы увидеть, есть ли дубликаты .. в в этот момент мы не изменяем документ. В конце концов, могут быть важные причины изменения пробелов или заглавных букв;
  • Если есть дубли, удалите новый файл, а затем сделайте ссылку на старый;
  • Если дубликатов нет, ничего не делайте;
  • ] Индексируйте файл по условиям поиска - в зависимости от формата файла существует множество опций, даже для документов Word;

На протяжении всего этого мы не говорим пользователю, что это был дубликат ... они этого не делают. т забота. Это мы (разработчики, администраторы баз данных и т. Д.), Которые заботятся.

И да, это работает, даже если они загружают новую версию файла позже. Сначала вы удаляете ссылку на файл, а затем, как и при сборке мусора, удаляете только старый файл, если на него нет ссылок.

могут быть важные причины, по которым пробелы или заглавные буквы изменены;
  • Если есть дубли, удалите новый файл, а затем сделайте ссылку на старый;
  • Если дубликатов нет, ничего не делайте;
  • Индексируйте файл файл для условий поиска - в зависимости от формата файла есть множество вариантов, даже для документов Word;
  • На протяжении всего этого мы не говорим пользователю, что это был дубликат ... им все равно. Это мы (разработчики, администраторы баз данных и т. Д.), Которые заботятся.

    И да, это работает, даже если они загрузят новую версию файла позже. Сначала вы удаляете ссылку на файл, а затем, как и при сборке мусора, удаляете только старый файл, если на него нет ссылок.

    могут быть важные причины, по которым пробелы или заглавные буквы изменены;
  • Если есть дубли, удалите новый файл, а затем сделайте ссылку на старый;
  • Если дубликатов нет, ничего не делайте;
  • Проиндексируйте файл файл для условий поиска - в зависимости от формата файла существует множество вариантов, даже для документов Word;
  • На протяжении всего этого мы не говорим пользователю, что это дубликат ... им все равно. Это мы (разработчики, администраторы баз данных и т. Д.), Которые заботятся.

    И да, это работает, даже если они загружают новую версию файла позже. Сначала вы удаляете ссылку на файл, затем, как и при сборке мусора, вы удаляете только старый файл, если на него нет ссылок.

  • Проиндексируйте файл по условиям поиска - в зависимости от формата файла существует множество опций, даже для документов Word;
  • На протяжении всего этого мы не говорим пользователю, что это дубликат ... они пофиг. Это мы (разработчики, администраторы баз данных и т. Д.), Которые заботятся.

    И да, это работает, даже если они загружают новую версию файла позже. Сначала вы удаляете ссылку на файл, затем, как и при сборке мусора, вы удаляете только старый файл, если на него нет ссылок.

  • Проиндексируйте файл по условиям поиска - в зависимости от формата файла существует множество опций, даже для документов Word;
  • На протяжении всего этого мы не говорим пользователю, что это дубликат ... они все равно. Это мы (разработчики, администраторы баз данных и т. Д.), Которые заботятся.

    И да, это работает, даже если они загрузят новую версию файла позже. Сначала вы удаляете ссылку на файл, а затем, как и при сборке мусора, удаляете только старый файл, если на него нет ссылок.

    1
    ответ дан 5 December 2019 в 22:19
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: