Поиск (API v2)

Это экспериментальный функционал, который может измениться в будущих релизах.

Определённые запросы 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

Пример сложного поискового запроса

{
      "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
}