Нечеткий поиск в справочнике. Версия 1.02
Задачи пользователя - Поиск данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
В основе лежит функция нечеткого сравнения, разбивающая искомую строку на части, последовательно уменьшающиеся в длине, начиная с полной длины искомого, и ищущая совпадение в строке сравнения. Если совпадение найдено, совпадающие части удаляются из обеих строк, и происходит рекурсивное обращение к самой себе с накоплением результатов совпадения вплоть до размера искомых строк в 2 символа.
Результатом является рейтинг совпадения, который потом переводится в %. Параметрами же самой функции поиска является в том числе значение требуемой достоверности, а также временной таймаут, а возвращает она в случае успеха ссылку на элемент справочника.
Процедура написана на языке 1С, потому не является оптимизированной по скорости, но со своими задачами вполне справляется на справочнике порядка 7000 элементов.
Для интерактивного ее варианта (и отладки) было добавлено отображение списка 20 лучших результатов с рейтингами и подстроками совпадения.
История версий:
1.02
- Отбор без групп удален из запроса, выведен в цикл перебора результатов (вызывал ошибку в справочниках без групп)
- Достоверность по умолчанию установлена в 80% (при 0% - была ошибка)
- Убрано прерывание поиска в случае 100% совпадения
Вступайте в нашу телеграмм-группу Инфостарт