Для поиска элементов по заданным критериям используется команда core/search_items:
svc=core/search_items¶ms={"spec":{ "itemsType":<text>, "propName":<text>, "propValueMask":<text>, "sortType":<text>, "propType":<text>, "or_logic":<bool> }, "force":<uint>, "flags":<long>, "from":<uint>, "to":<uint>}
Использование данного запроса рассмотрено в примере Поиск элементов.
Название | Описание |
---|---|
spec | условия поиска |
itemsType | тип искомых элементов (см. список ниже), если оставить пустым, то поиск будет осуществляться по все типам |
propName | имя свойства, по которому будет осуществляться поиск (см. список возможных свойств ниже):может быть использован | |
propValueMask | значение свойства: могут быть использованы * | , > < = |
sortType | имя свойства, по которому будет осуществляться сортировка ответа |
propType | тип свойства (см. список типов ниже) |
or_logic | флаг «ИЛИ»-логики для propName-поля (см. ниже) |
force | 0 - если такой поиск уже запрашивался, то вернет полученный результат, 1 - будет искать заново |
flags | флаги видимости для возвращаемого результата (Значение данного параметра зависит от типа элемента, который вы хотите найти. Форматы всех элементов, а так же их флаги описаны в разделе Форматы данных.) |
from | индекс, начиная с которого возвращать элементы результирующего списка (для нового поиска используйте значение 0) |
to | индекс последнего возвращаемого элемента (если 0, то вернет все элементы, начиная с указанного в параметре «from») |
Типы элементов системы Wialon (указываются в поле «itemsType»):
Свойства элементов (указываются в поле «propName» и «sortType»):
Другие возможные значения данного параметра рассмотрены ниже в таблице.
Типы свойств (указываются в поле «propType»):
Если нужно произвести поиск в подэлементах, то для параметра «propType» устанавливается значение propitemname, а остальные параметры могут принимать следующие значения:
Элемент (значение "itemsType") | Подэлемент (значение "propName" и "sortType") | Описание |
---|---|---|
avl_unit | unit_sensors | сенсоры |
unit_commands | команды | |
service_intervals | интервалы техобслуживания | |
avl_resource | drivers | водители |
driver_groups | группы водителей | |
jobs | задания | |
notifications | уведомления | |
pois | POI | |
trailers | прицепы | |
trailer_groups | группы прицепов | |
zones_library | геозоны | |
reporttemplates | шаблоны отчетов | |
avl_route | rounds | рейсы |
route_schedules | расписания | |
avl_retranslator | retranslator_units | ретранслируемые объекты |
avl_unit или user или avl_resource | custom_fields | произвольные поля |
admin_fields | административные поля |
По-умолчанию сортировка (прямая) работает так:
Прямая (вернет значения, отсортированные по возрастанию):
"sortType":"<свойство_элемента>"
Обратная (вернет значения, отсортированные по убыванию):
"sortType":"!<свойство_элемента>"
Комбинированная (вернет значения, отсортированные по первому признаку, в случае равенства значений – по второму и т.д.):
"sortType":"<свойство1>,!<свойство2>"
Специальная: при этой сортировке символ «-» расценивается как обозначение отрицательного числа (по-умолчанию «-» расценивается системой как «дефис», а не как «минус»; при включении опции числа с символом «-» перед ними будут расцениваться отрицательными числами при сортировке):
"sortType":"-<свойство_элемента>"
В системе поддерживатся поиск по многим критериям поиска.
Пример:
"itemsType":"avl_resource","propName":"rel_is_account,*","propValueMask":"1,qwe","sortType":"sys_name","propType":"property,customfield"
Количество критериев в «propName», «propType» и «propValueMask» должно быть одинаковым, т.к. они рассматриваются по три соответственно.
По-умолчанию работает «И»-логика для «propName»-поля. Это означает, что нам найдутся все учётные записи (rel_is_account:1), имя которых в свою очередь начинается с «foo» (sys_name:«foo*»).
Для того, чтобы включить «ИЛИ»-логику для «propName», укажите «or_logic»:1 в запросе.
В поле propValueMask можно использовать операторы сравнения, такие как <, >, =, >=, ⇐.
Если поле для поиска строковое, то система будет искать числа лишь в начале поля (имени, произвольной строки).
Если поле числовое, то будет анализироваться всё число.
Пример 1:
"itemsType":"avl_unit","propName":"sys_name,sys_name","propValueMask":">=32,<33.5"
Найдутся все объекты, имя которых начинается с чисел в диапазоне от 32 (включительно) до 33.5 (включительно)
Пример 2:
"itemsType":"avl_resource","propName":"sys_account_balance,sys_account_balance","propValueMask":">2,<=23"
Найдутся все ресурсы и учётные записи, у которых баланс больше 2, но меньше либо равен 23.
Также можно использовать оператор «=» в случае, если значение поля начинается с «>» или «<».
Пример 3:
"itemsType":"avl_unit","propName":"sys_name","propValueMask":"=>123<,=<123>"
Поиск найдет объект с именем '>123<' и '<123>' (если они существуют).
{ "searchSpec":{ /* условия поиска */ "itemsType":<text>, /* тип элементов*/ "propName":<text>, /* имя свойства */ "propValueMask":<text>, /* значение свойства */ "sortType":<text>, /* свойство для сортировки*/ "propType":<text> /* тип свойства */ }, "dataFlags":<uint>, /* примененные флаги видимости */ "totalItemsCount":<uint>, /* количество найденных элементов*/ "indexFrom":<uint>, /* начальный индекс */ "indexTo":<uint>, /* конечный индекс */ "items":[{...}] /* найденные элементы */ }
Формат элементов массива «items» зависит от типа элементов, заданного при поиске. Форматы всех типов данных перечислены в разделе Форматы данных.
|