Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Бизнес-смысл

Расширенный поиск — это возможность искать контрагентов, не ограничиваясь стандартными рамками, строить гибкие отчеты и составлять различные комбинации условий.

В системе обнаружилось 100 человек со словом «Гагарина»? А сколько тех, у кого это фамилия? Или наоборот, улица в адресе?

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

Описание

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

? Folk.name = Иван

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

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

Синтаксис

Равенство

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

Контрагенты с фамилией Иванов:

? Folk.surname = Иванов

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

? Folk.birthdate = 18.03.1975

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

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

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

Контрагенты с фамилией Иванов:

? Folk.surname = Ива*

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

? Folk.birthdate = *03*

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

? Folk.company = *часовой\ пояс*\ Омск*

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

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

Примеры правил поиска с пробелами и кавычками:

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

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

? Folk.company = *часовой пояс Омск*

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

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

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

Если брать в кавычки, не будет работать символ *


Комбинация условий

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

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

? Folk.surname = Иванов and Folk.birthdate = 18.03.1975

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

Например, поиск контрагентов с фамилией Иванов или Кутузов:

? Folk.surname = Иванов or Folk.surname = Кутузов

Можно использовать и простой поиск, и расширенный → если не экранировать пробел символом «\», то пробел в расширенном поиске означает, что дальше мы ищем полнотекстово.

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

 ? Phone.aggregateNumber = 4953332243 Иванов Иван Иванович

 

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

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

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

? Folk.id = (1024 or 1025 or 1026 or 2048)
Неравенства и диапазоны

Для числовых полей и дат можно делать выборки по условиям на неравенство:

  • >
  • >=
  • <
  • <=

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

? Folk.birthdate > 01.01.1993

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

? Folk.birthdate >= 15.01.2013 and Folk.birthdate < 16.01.2013

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

? Folk.birthdate : [18.03.1975, 18.03.1995]

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

  • No labels