top of page
  • Writer's pictureSarov+

Как создать кастомный поиск дубликатов?

Приветствуем всех! Сегодня мы хотим поделиться с вами нашими знаниями о том, как легко и просто построить удобный и понятный прототип кастомного поиска дубликатов. Улучшение методов борьбы с дублированием данных — это аспект, который особенно важен в эпоху растущего объема информации. В отличие от традиционных инструментов, наш подход позволяет упростить и сделать более эффективным процесс поиска дубликатов, предоставляя решение, которое удобно в использовании.


custom search for duplicates

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


duplicate

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



А узнать больше процесс создания кастомного поиска дубликатов можно в нашем видео:


Задача

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


search for duplicates

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


our task

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


Цели разработки

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


Development Goals
  1. Удобный интерфейс: Самой важной целью для нас была разработка интуитивно понятного и удобного интерфейса. Наш опыт со стандартными инструментами поиска дубликатов показал, что сложность использования и неудобный интерфейс являются ключевыми барьерами для эффективной работы. Мы хотели, чтобы наш инструмент был легко понятным и простым в использовании, с уменьшением количества шагов и процессов, необходимых для идентификации дубликатов.

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

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

Combining these three goals

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


Компоненты

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


structure and algorithm of our control
  1. Скрипт: Этот компонент является фундаментальным в реализации нашего поиска дубликатов. Скрипт активизируется автоматически при загрузке формы. Его основная функция — это поиск возможных дубликатов согласно заранее установленным правилам. Он выполняет предварительную проверку данных, которые вносятся или изменяются пользователем, и определяет, произошли ли изменения в поле, которое было использовано для поиска дубликатов. Если изменения произошли, скрипт автоматически инициирует новый поиск дубликатов, а если изменений не было - он считает, что обнаруженные ранее дубликаты остаются актуальными.

  2. Веб-ресурс: Этот компонент играет роль интерфейса для визуализации результатов работы скрипта. После того, как скрипт находит потенциальные дубликаты, веб-ресурс принимает эту информацию и отображает ее пользователю. Он предоставляет возможность детального просмотра каждого дубликата, включая все соответствующие поля и информацию. Пользователь имеет возможность открыть каждый дубликат в отдельной вкладке для получения более детальной информации. Также веб-ресурс обеспечивает дополнительные функции, такие как отправка deduplication request.

tool for efficient search and management of duplicates

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



Версии

Первая версия

First version

В этой версии основной задачей скрипта было активироваться при загрузке формы, обнаруживать дубликаты на основе заданных правил и проверять наличие изменений в полях, которые использовались для поиска дубликатов. Если обнаруживались изменения, система повторно выполняла поиск дубликатов; если изменений не было, считалось, что найденные дубликаты остаются актуальными. После проверки открывался веб-ресурс, который демонстрировал пользователю все найденные дубликаты. Пользователи имели возможность просматривать детальную информацию о каждом дубликате, включая возможность открыть их в новой вкладке.

 

Вторая версия

Second version

После периода тестирования мы решили расширить функционал нашего решения, добавив возможность отправки запроса на deduplication. Однако, во время тестирования выяснилось, что наша система не была оптимизирована для случаев с большим количеством дубликатов, например, более десяти. Проблема заключалась в методе передачи данных в веб-ресурс через URL, что ограничивало размер передаваемых данных.

 

Третья версия

Third version

В ответ на эти вызовы мы значительно изменили логику работы нашей системы. Теперь скрипт передает веб-ресурсу только идентификаторы дубликатов, а не полную информацию о них. Это значительно уменьшило объем передаваемых данных и решило проблему с ограничениями URL. Веб-ресурс теперь получает список идентификаторов и, при необходимости, извлекает детальную информацию из базы данных. Эта версия является наиболее актуальной, но мы продолжаем работать над ее усовершенствованием и адаптацией к новым требованиям и идеям.


Как это работает?

contact form

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


list of possible duplicates

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


Master and duplicate

Помимо просмотра, наша система предоставляет два варианта действий с обнаруженными дубликатами. Первый вариант — это отправка запроса на deduplication (запрос на удаление дубликатов). Для этого пользователь должен указать статус каждой записи, определив одну как основную (Master) и другую как дубликат. Этот процесс обязателен для отправки deduplication request. После выбора Master и дубликата, пользователь может нажать кнопку "Request Deduplication", которая отправляет запрос.


Request Deduplication

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

sending a request

Таким образом, наш инструмент поиска дубликатов не только автоматизирует обнаружение дубликатов, но и предоставляет пользователям контроль и гибкость в решении этой проблемы, делая процесс более эффективным и удобным.


Интеграция

Улучшить понимание процесса интеграции нашего контрола поиска дубликатов в различные проекты – вот как можно повысить его универсальность и эффективность. Как построить этот процесс? Мы обнаружили, что он достаточно удобен и не требует сложных технических навыков, что делает его доступным для широкого круга разработчиков.

 

Импортирование Solution

Importing Solution

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

 

Подключение скрипта на OnLoad формы

Connecting a script to the OnLoad form

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

 

Модификация файла настроек

Modifying the settings file

Последний шаг — это возможная модификация файла настроек. Это важно, поскольку разные проекты могут иметь разные требования и условия использования. Файл настроек позволяет пользователям адаптировать контрол под конкретные потребности проекта, выбирая специфические поля, параметры поиска дубликатов и другие настройки. Этот этап интеграции является решающим для обеспечения максимальной гибкости и эффективности контрола в различных средах.


Благодаря этим трем простым шагам, наш контрол поиска дубликатов может быть легко интегрирован практически в любую систему, обеспечивая мощные и настраиваемые инструменты для обнаружения и управления дубликатами.


Файл настроек

Settings file

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

  1. Определение Entity: Здесь мы указываем, с какой сущностью (entity) будем работать. Это важно для обеспечения того, что поиск дубликатов происходит в соответствующем контексте.

  2. Иконка с Инициалами: Мы предоставляем возможность решить, нужно ли отображать иконку с инициалами для каждой записи. Это помогает визуально отличать записи друг от друга.

  3. Список Правил для Поиска Дубликатов: Мы определяем конкретные правила, по которым наша система будет искать дубликаты. Например, мы можем установить, что дубликат считается таковым, если он имеет одинаковые имена, фамилии, идентификатор родительского клиента и основной телефонный номер. Это позволяет точно настраивать критерии определения дубликатов.

  4. ShowColumns: Этот параметр указывает, какие поля будут отображаться пользователю при просмотре потенциальных дубликатов. Это обеспечивает гибкость отображения информации, в зависимости от потребностей пользователя.

  5. ColumnsForChange: Мы добавили этот параметр для отслеживания изменений в полях, которые могут быть модифицированы плагинами и не выводиться непосредственно на форму. Например, если у нас есть поле «telephone1», которое является изменяемым, и поле “dnl_telephone1_base”, которое используется для поиска дубликатов и может быть модифицировано, мы включаем оба эти поля в этот список.

  6. Header: Последний пункт - это определение заголовка (header) записи. Это позволяет отображать разные заголовки для разных entity, таких как “account name” или комбинация “firstname” и “lastname”, в зависимости от того, какая информация наиболее релевантна для данной entity.

settings

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




Заключение

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


custom control

Среди ключевых преимуществ нашего контрола - гибкость и легкость интеграции, которые позволяют его применение в разных типах проектов. Пользователи могут легко настраивать систему под свои уникальные потребности благодаря гибкому файлу настроек. Это не только повышает продуктивность работы с данными, но и обеспечивает высокую точность в обнаружении дубликатов.


duplicate detection

Наша цель - обеспечить, чтобы пользователи могли эффективно и без лишних усилий взаимодействовать с большими объемами данных, обеспечивая чистоту и качество информации в их системах. Мы уверены, что наш контрол поиска дубликатов будет важным инструментом во многих сферах, где важна точная и эффективная обработка данных.


innovation and improvement

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


Рекомендации

На основе нашего опыта в разработке и использовании кастомного контрола для поиска дубликатов, мы хотели бы поделиться некоторыми ключевыми рекомендациями, которые могут быть полезны для тех, кто планирует внедрить подобные решения в своих проектах:

  • Гибкость настроек: Убедитесь, что ваше решение позволяет легко изменять настройки и адаптировать инструмент под специфику разных проектов. Это значительно повышает универсальность вашего продукта.

  • Удобство пользовательского интерфейса: Ваш интерфейс должен быть интуитивно понятным и легким в использовании. Это поможет пользователям быстро освоить систему и эффективно использовать ее возможности.

  • Тестирование на реальных данных: Регулярно тестируйте ваше решение на реальных данных и сценариях использования. Это поможет идентифицировать потенциальные проблемы и обеспечит более высокую надежность системы.

  • Поддержка и обновления: Постоянно поддерживайте и обновляйте ваше решение, чтобы оно соответствовало изменениям в технологиях и потребностях пользователей.

  • Учет ограничений и исключений: Будьте готовы к ситуациям, когда количество дубликатов может быть выше ожидаемого, и обеспечьте эффективную обработку таких случаев.

  • Вовлечение пользователей в процесс развития: Собирайте обратную связь от пользователей и учитывайте их потребности и предложения в последующих обновлениях.

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



9 views0 comments

Comments


bottom of page