Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

В системе обнаружилось 100 000 дубликатовчеловек со словом «Гагарина»? А сколько из них найдено по конкретному сценарию? Например, сценарий № 11 — насколько он важен, много ли дубликатов было найдено именно по нему?Сколько есть дубликатов со 100% коэффициентом соответствия? Сколько из них имеют адрес без указания дома? Имеют кредитную карточку вашего банка? Или старше 30 лет? Или... Варианты возможны любые. тех, у кого это фамилия? Или наоборот, улица в адресе?

Простой поиск ищет по всем полям, расширенный — по конкретному. Но любой поиск ищет только по полному совпадению (по частичному — нет). 

Info
titleПояснялка для студентов

Расширенный поиск нужен для работы через API. Системы, которые интегрируются с Folks, работают только с методом search, который фактически является строкой поиска. Делать 100500 разных методов и учить интеграцию "а вот по 5 полям можно использовать метод фильтрации, а по остальным 50 расширенный поиск" смысла нет. Поэтому через интеграцию ищут простым или расширенным поиском, все. Или "поищи везде", или "по конкретным полям". 

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


Описание

Расширенный поисковый запрос всегда должен начинаться с вопросительного знака: 

Code Block
? PassportFolk.documentNumbername = 638431Иван

Чтобы увидеть результаты расширенного поиска, необходимо нажать Ctrl+Enter (в отличие от Enter для обычного поиска).

Поиск возможен по следующим полям и атрибутам:

Child pages (Children Display)

Синтаксис

Равенство

Чтобы обозначить равенство, можно использовать символ =.

...

Контрагенты, родившиеся 18.03.1975:

Code Block
? Folk.birthdatebirthDate = 18.03.1975

Пробел интерпретируется как разделитель, составные значения нужно передавать в кавычках:

Code Block
? Folk.patronymic = "Бахтырай Оглы"
Неточный поиск

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

...

Контрагенты с датой рождения, содержащей цифры 03

Code Block
? Folk.birthdatebirthDate = *03*

Пробел экранируем через слеш

Code Block
? LegalPartyFolk.namecompany = *часовой\ пояс*\ Омск*

Если нужно искать именно кавычки, их тоже экранируем

Code Block
? LegalPartyFolk.shortNamecompany = *\"Яблочко*\"
? LegalPartyFolk.namecompany = *Студия\ \"Яблочко\"*    --- экранируем сначала пробел, потом кавычку

...

Code Block
- Поискать ЮЛ с пробелами в названии: [? LegalPartyFolk.namecompany = *\ *]
- Поискать ЮЛ с двумя пробелами в названии [? LegalPartyFolk.namecompany = *\ *\ *]
- Поискать ЮЛ, у которого есть часть в кавычках, а внутри неё пробел [? LegalPartyFolk.namecompany = *\"*\ *\"*] 
  (первая и последняя звёздочки для "любое начало и конец"; кавычки экранированы, т.к. спец.символ; между кавычками стоит "что угодно, пробел, что угодно")

Просто написать

Code Block
? LegalPartyFolk.namecompany = *часовой пояс Омск*

Нельзя нельзя → пробел означает, что поиск по данной сущности закончен и дальше или новый запрос, или простой поиск, не расширенныйтут несколько поисков, которые объединяются как AND. То есть мы получили три условия поиска:

  • ? LegalPartyFolk.name company = *часовой
  • Пояс
  • Омск* 

Из них «*часовой» относится к наименованию, а остальное — к простой по любым индексируемым полям.

...

Чтобы выполнялись несколько условий поиска одновременно, необходимо использовать использовать использовать выражение AND (И).

Например, Ивановых, родившихся 18.03.1975, можно найти таким запросом:

Code Block
? Folk.surname = Иванов and Folk.birthdatebirthDate = 18.03.1975

Чтобы выполнялось хотя бы одно условие поиска, необходимо использовать использовать выражение OR (ИЛИ).

...

Поэтому можно совместить — сначала все условия по атрибутам, потом пробел и ФИО одной строкой

Code Block
 ? PhoneDevice.aggregateNumbermodel = 4953332243iPad Иванов Иван Иванович

...


Перечисления

Поиск по вхождению значения в множество значений (перечисление) выполняется с помощью выражения OR (ИЛИ).

Например, для поиска всех контрагентов с указанными идентификаторами:

Code Block
? Folk.historicalIdid = (1024 or 1025 or 1026 or 2048)

...

Например, для поиска всех контрагентов старше младше 20 лет (предположим, системная дата 01.01.2013):

Code Block
? Folk.birthdatebirthDate > 01.01.1993

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

Code Block
? Folk.latestActualityDatebirthDate >= 15.01.2013 and Folk.latestActualityDatebirthDate < 16.01.2013

Условие на диапазон также можно указать с помощью интервала:

Code Block
? Folk.birthdatebirthDate : [18.03.1975, 18.03.1995]

Квадратные скобки [] указывают, что поиск включает границы интервала, фигурные скобки {} — что не включает.

Поиск по разным типам клиентов

В Менеджере данных можно искать только по той вкладке, на которой вы находитесь. Но через SOAP можно искать сразу по разным типам клиентов

Например, поиск по ИНН среди ФЛ и ЮЛ:

...

.

...