Сервис поиска и объединения
дублей
Сервис поиска и объединения дублей создан для быстрого поиска дублирующих записей с целью их объединения. Дублирующие записи в системе могут появляться при обновлении данных в различных разделах.
В системе присутствуют два типа поиска дублирующих записей:
- Массовый поиск дублей — выполняется по всей базе данных, имеет ручной или автоматический запуск;
- Локальный поиск дублей — выполняется для конкретной записи, запускается в момент сохранения новой записи в разделе.
Объединение выбранных записей в любом разделе системы возможно сделать и без запуска поиска дублирующих записей.
Поиск дублирующих записей основан на использовании правил поиска:
- Для основных разделов системы («Контрагенты» (Accounts), «Контакты» (Contacts) и «Лиды» (Leads)) базовые правила поиска дублирующих записей уже настроены;
- Дополнительные правила поиска дублирующих записей можно добавить в разделе «Правила поиска дублей» дизайнера системы;
- Правила поиска дублирующих записей можно добавлять даже для пользовательских разделов системы.
Компоненты сервиса
В работе сервиса поиска дублирующих записей используются следующие компоненты:
Таблица 1 — Инфраструктурные компоненты сервиса
| Компонент | Название в поставке | Описание | Версия компонента в последнем релизе микросервиса (Docker) | Версия компонента в последнем релизе микросервиса (Helm) |
| Search Engine | opensearch | Поисковая система | opensearch:latest | 2.9.0 |
| RabbitMQ | rabbitmq | Брокер сообщений | rabbitmq:4.0.7-management | 3.12.2 |
| MongoDB | mongodb | Документно-ориентированная система управления базами данных. Используются две базы данных: одна для хранения информации, другая для работы с кэшем | mongodb:7.0.12-debian-12-r5 | 8.0.9 |
Таблица 2 — Специфичные компоненты сервиса
| Компонент | Описание |
| Web.Api | Обрабатывает запросы от BPMSoft, связанные с поиском, подтверждением, отклонением и объединением дубликатов. Ведет учет уникальных записей и следит за целостностью данных при работе с BPMSoft. Также занимается резервным копированием и восстановлением данных, что позволяет работать с результатами поиска и их изменениями. Формирует сообщения для Task.Api |
| DataService.Web.Api | Обеспечивает централизованный доступ к данным и взаимодействие с базой MongoDB. Предоставляет REST API для чтения, записи и обновления информации, необходимой Web.Api, Search.Api, Preparation.Api и Task.Api. Формирует сообщения для Cleaner.Api, Deletion.Api и Confirmation.Api |
| Search.Api | Компонент поиска дублей |
| Deletion.Api | Компонент обработки и точечного удаления дублей |
| Confirmation.Api | Компонент группировки и фильтрации уникальных дублей |
| Cleaner.Api | Компонент обработки и удаления подтвержденных дублей |
| Task.Api | Компонент для формирования задачи на поиск дублирующих записей |
| Preparation.Api | Компонент для формирования запросов на поиск дублирующих записей по используемым правилам |
| TaskDiagnostic.Api | Компонент, отвечающий за обновление статусов зависших задач и перевод их в статус «Отменено» |
Ниже изображена схема взаимодействия компонентов сервиса поиска дублирующих записей.
Рисунок 1 — Схема работы сервиса

Способы развертывания
При использовании cloud варианта развертывания системы, сервис поиска и объединения дублирующих записей включен по умолчанию.
При использовании on-site варианта развертывания системы, предварительно необходимо развернуть сервис глобального поиска. С техническими требованиями к сервису поиска и объединения дублей можно ознакомиться в статье Системные требования BPMSoft.
Рекомендуем изучить
Развертывание сервиса поиска и объединения дублей через Kubernetes
Развертывание сервиса поиска и объединения дублей через Docker
Калькулятор системных требований