- НаименованиеДляПоиска
- КлючевыеСловаПодборКомментарий
- КодОКПД2ДляПодбора.
Например, Если Наименование = Набор Плитки керамической (тест описания) белая, то НаименованиеДляПоиска = %набор%плитк%керамическ%тест%описан%бел% для Шаблона1
Ключевые слова инверсируются %бел%описан%тест%керамическ%плитк%набор% для Шаблона2
- наименование объекта закупки
- описание объекта закупки
- код ОКПД2
Например, если НаименованиеОбъектаЗакупки = Плитка керамическая белого цвета, тогда КлючевыеСловаДляПоиска = %плитк%керамическ%бел%цвет%
СтрокаПоиска ПОДОБНО &Шаблон1 СтрокаПоиска ПОДОБНО &Шаблон2 Шаблон1 ПОДОБНО &СтрокаПоиска Шаблон2 ПОДОБНО &СтрокаПоиска
| ВЫБРАТЬ | УТО_НоменклатураПоОбъектамЗакупки.Номенклатура, | ИСТИНА | ИЗ | РегистрСведений.УТО_НоменклатураПоОбъектамЗакупки КАК УТО_НоменклатураПоОбъектамЗакупки | ГДЕ | УТО_НоменклатураПоОбъектамЗакупки.НаименованиеОбъектаЗакупки = &НаименованиеОбъектаЗакупки | И (УТО_НоменклатураПоОбъектамЗакупки.ОписаниеОбъектаЗакупки = &ОписаниеОбъектаЗакупки | ИЛИ УТО_НоменклатураПоОбъектамЗакупки.ОписаниеОбъектаЗакупки ПОДОБНО """"
Сходство Джаро — Винклера представляет собой меру схожести строк для измерения расстояния между двумя последовательностями символов.
*Расстояние Джаро — Винклера использует коэффициент масштабирования — p,
что дает более благоприятные рейтинги строкам, которые совпадают друг с другом
от начала до определённой длины — L, которая называется префиксом.
Даны две строки s1 и s2. Их расстояние Джаро — Винклера dw это:
dw = dj + (L * p * (1-dj));
где:
dj — расстояние Джаро для строк s1 и s2
L — длина общего префикса от начала строки до максимума
4-х символов. (цепочка совпавших символов с тождественными порядковыми номерами)
p — постоянный коэффициент масштабирования, использующийся для того, чтобы скорректировать
оценку в сторону повышения для выявления наличия общих префиксов.
p не должен превышать 0,25, поскольку в противном случае расстояние
может стать больше, чем 1.
Стандартное значение этой константы в работе Винклера: p=0.1;
Идея реализации заимствована отсюда
Каждый символ строки объекта закупки сравнивается со всеми соответствующими ему символами в наименовании элемента справочника Номенклатура. Количество совпадающих (но отличающихся порядковыми номерами) символов, которое делится на 2, определяет число транспозиций. Например, при сравнении слова CRATE со словом TRACE, только ‘R’ ‘A’ и ‘Е’ являются совпадающими символами, то есть m=3. Хотя ‘C’ и ‘T’ появляются в обоих строках, они дальше, чем на 1, то есть floor(5/2)-1=1. Следовательно, t=0 . В сравнении DwAyNE с DuANE соответствующие буквы находятся уже в том же самом порядке D-A-N-E, так что никаких перестановок не требуется.
Также присутствует функция сравнения текста по словам. Сначала обе строки разбиваются по словам. Затем поочередно сравниваются и максимальный результат сравнения идет к общему зачету. Максимально возможный результат сравнения равен 1. Соответственно общий максимальный результат может быть равен числу сравнений слов в строках. Пример: сравниваем «зеленая трава» и «трава зеленая» результат будет 2. (1+1).
Механизм может использоваться везде, где требуется подбор и сортировка аналогов номенклатуры.
*настройки разрешается менять только опытным пользователям или в режиме разработчика
*после каждого изменения настроек необходимо провести или перезаписать все объекты, для которых действуют эти настройки
*при количестве записей номенклатуры свыше 10000 строк возможно замедление выполнения запросов
*для конфигураций, где «Управление тендерным отделом 2.0» используется как подсистема, механизм автоматического подбора разрабатывается опционально с учетом структуры справочника Номенклатура основной конфигурации и оптимизации запросов по техническому заданию согласно прайс-листу.