Бизнес-смысл
Расширенный поиск — это возможность искать контрагентов, не ограничиваясь стандартными рамками, строить гибкие отчеты и составлять различные комбинации условий.
В системе обнаружилось 100 000 дубликатов? А сколько из них найдено по конкретному сценарию? Например, сценарий № 11 — насколько он важен, много ли дубликатов было найдено именно по нему?
Сколько есть дубликатов со 100% коэффициентом соответствия? Сколько из них имеют адрес без указания дома? Имеют кредитную карточку вашего банка? Или старше 30 лет? Или... Варианты возможны любые.
Описание
Расширенный поисковый запрос всегда должен начинаться с вопросительного знака:
? Passport.documentNumber = 638431
Синтаксис
Равенство
Чтобы обозначить равенство, можно использовать символ =
.
Контрагенты с фамилией Иванов:
? Folk.surname = Иванов
Контрагенты, родившиеся 18.03.1975:
? Folk.birthdate = 18.03.1975
Пробел интерпретируется как разделитель, составные значения нужно передавать в кавычках:
? Folk.patronymic = "Бахтырай Оглы"
Неточный поиск
Можно искать по части слова, используя символ *, который означает "любое количество любых символов"
Контрагенты с фамилией Иванов:
? Folk.surname = Ива*
Контрагенты с датой рождения, содержащей цифры 03
? Folk.birthdate = *03*
Пробел экранируем через слеш
? LegalParty.name = *часовой\ пояс*\ Омск*
Если нужно искать именно кавычки, их тоже экранируем
? LegalParty.shortName = *\"Яблочко*\" ? LegalParty.name = *Студия\ \"Яблочко\"* --- экранируем сначала пробел, потом кавычку
Примеры правил поиска с пробелами и кавычками:
- Поискать ЮЛ с пробелами в названии: [? LegalParty.name = *\ *] - Поискать ЮЛ с двумя пробелами в названии [? LegalParty.name = *\ *\ *] - Поискать ЮЛ у которого есть часть в кавычках, а внутри неё пробел [? LegalParty.name = *\"*\ *\"*] (первая и последняя звёздочки для "любое начало и конец"; кавычки экранированы, т.к. спец.символ; между кавычками стоит "что угодно, пробел, что угодно")
Просто написать
? LegalParty.name = *часовой пояс Омск*
Нельзя → пробел означает, что поиск по данной сущности закончен и дальше или новый запрос, или простой поиск, не расширенный. То есть мы получили три условия поиска:
- ? LegalParty.name = *часовой
- Пояс
- Омск*
Из них «*часовой» относится к наименованию, а остальное — к любым индексируемым полям.
Если брать в кавычки, не будет работать символ *
Комбинация условий
Чтобы выполнялись несколько условий поиска одновременно, необходимо использовать использовать выражение AND
(И)
.
Например, Ивановых, родившихся 18.03.1975, можно найти таким запросом:
? Folk.surname = Иванов and Folk.birthdate = 18.03.1975
Чтобы выполнялось хотя бы одно условие поиска, необходимо использовать использовать выражение OR
(ИЛИ)
.
Например, поиск контрагентов с фамилией Иванов или Кутузов:
? Folk.surname = Иванов or Folk.surname = Кутузов
Можно использовать и простой поиск, и расширенный → если не экранировать пробел символом «\», то пробел в расширенном поиске означает, что дальше мы ищем полнотекстово.
Поэтому можно совместить — сначала все условия по атрибутам, потом пробел и ФИО одной строкой
? Phone.aggregateNumber = 4953332243 Иванов Иван Иванович
Перечисления
Поиск по вхождению значения в множество значений (перечисление) выполняется с помощью выражения OR
(ИЛИ
).
Например, для поиска всех контрагентов с указанными идентификаторами:
? Folk.historicalId = (1024 or 1025 or 1026 or 2048)
Неравенства и диапазоны
Для числовых полей и дат можно делать выборки по условиям на неравенство:
- >
- >=
- <
- <=
Например, для поиска всех контрагентов старше 20 лет:
? Folk.birthdate > 01.01.1993
Если дата может включать время, то для поиска по конкретному дню необходимо использовать диапазон дат. Например, чтобы найти контрагентов с датой актуальности 15.01.2013:
? Folk.latestActualityDate >= 15.01.2013 and Folk.latestActualityDate < 16.01.2013
Условие на диапазон также можно указать с помощью интервала:
? Folk.birthdate : [18.03.1975, 18.03.1995]
Квадратные скобки []
указывают, что поиск включает границы интервала, фигурные скобки {}
— что не включает.
Поиск по разным типам клиентов
В Менеджере данных можно искать только по той вкладке, на которой вы находитесь. Но через SOAP можно искать сразу по разным типам клиентов
Например, поиск по ИНН среди ФЛ и ЮЛ:
? Folk.inn = 7705974943 OR LegalParty.inn = 7705974943