Поиск (API v2)
NOTE
Это экспериментальный функционал, который может измениться в будущих релизах.
Определённые запросы API v2 позволяют определить критерии поиска для фильтрации ответа. Обратите внимание, что поиск и фильтры в запросах API v2 отличаются от фильтров в остальных запросах, например Поиск объектов.
Формат поиска
Поисковый запрос определяется списком критериев, которые объединяются логическим ИЛИ. Каждый критерий определяется набором условий. Эти условия объединены логическим И.
Поиск поддерживает следующие параметры:
| Параметр | Описание |
|---|---|
source | Тип значения, по которому нужно производить фильтрацию значений. Поддерживаемые значения – properties или object. По умолчанию – object. |
case_insensitive | Игнорировать регистр при поиске имени. 0 – имя учитывает регистр, 1 – имя не учитывает регистр. По умолчанию – 0. |
Эта настройка применяется только для типа значения (source) – properties. | |
conditions | Список условий, объединённых логическим И. |
conditions.type | |
| Тип условия. Поддерживается следующие значения: |
= – Равен,
< – Меньше чем,
> – Больше чем,
⇐ – Меньше или равно,
>= – Больше или равно,
!= – Не равно,
LIKE – Совпадение с паттерном с учётом регистра. Поддерживает символ подстановки % (любое значение),
ILIKE – Совпадение с паттерном без учёта регистра. Поддерживает символ подстановки % (любое значение).
| | conditions.exclude | Определяет возвращаемые значения. 0 – вернуть значения, которые соответствуют условиям, 1 – вернуть значение, которые не соответствуют условиям. По умолчанию – 0. | | conditions.value | Фильтрация по значению. Поддерживает символ подстановки % (любое значение). Строка % возвращает все доступные поля. | | conditions.property | Дополнительные параметры фильтра свойств. | | conditions.property.fields | Фильтр по полям свойств. | | conditions.property.type | Тип свойства. Поле поддерживает следующие типы свойств:
string
integer
float
boolean
datetime
date
time
mac
ip
url
email
phone
dictionary
|
Пример сложного поискового запроса
json
{
"filter": {//И
"owner_ids":[]//ИЛИ string,
"parent_ids":[]//ИЛИ string,
"child_ids": [//ИЛИ
"66c05eec7e8a9b00113f341f",
"66a8972a71ca890012634a03" //string
],
"search": [//ИЛИ
{//И
templateType:{//Имя параметра, для обьекта точное совпадение, для свойств - имя свойства содержит подстроку
source:"properties",
conditions:[//И
{
type:"ILIKE",
value:"%sSd",
property:{//И. Фильтр по полям свойства, (только для свойств)
fields:{//И.
class_id:["234324234"]//И свойство имеет class_id из списка, в массиве - ИЛИ
}
}
}
],
},
name:{
source:"object"
conditions:[
{
type:"LIKE",
value:"%aaa%"
}
],
},
created:{
source:"object"
conditions:[//И
{
type:">=",
value:1733000400000
},
{
type:"<=",
value:1735246799999
}
],
}
},
{
agentId:{
source:"properties",
conditions:[
{
type:"LIKE",
value:"234324",
property:{//И. Фильтр по полям свойства, (только для свойств)
fields:{//И.
type_id:[1,1234,8]//И свойство имеет один из type_id, в массиве - ИЛИ
};
type:["integer"]//И value имеет тип значения из списка, в массиве - ИЛИ
}
},
],
}
},
{
"%":{//% любое свойство, содержащее значение которое начинается с 5566
source:"properties",
conditions:[
{
type:"LIKE",
value:"5566%"
},
],
}
}
],
"state_ids": ["1", "2", "3"], //ИЛИ string
"class_ids": [], //ИЛИ string
"ids": [], //ИЛИ string
"tags": [] //ИЛИ string
},
"flags":["paths"],
"fields": [
"name",
"class_id",
"state_id",
],
"order":["field1","!field2"]
"limit": 5,
"offset": 5
}