Фильтровать по значению атрибута в Orion Context Broker SQL Style - "Атрибут" LIKE "%text%"
Следуя документу спецификации NGSIv2, есть ли способ поиска объектов по части значения атрибута?
Что-то вроде http://192.168.36.95:1026/v2/entities?type=POI&options=keyValues&q=Description=='PART OF TEXT', чтобы получить объекты, атрибут Description которых содержит 'PART OF TEXT'
2 ответа
Вы можете использовать оператор сопоставления с шаблоном. увидеть ниже
~=. Значение соответствует данному шаблону, выраженному как регулярное выражение, например, цвет ~ = ow. Для сопоставления сущности она должна содержать целевое свойство (цвет), а значение целевого свойства должно совпадать со строкой в правой части, в данном примере - "ow" (коричневый и желтый будут соответствовать, черный и белый не будут), Эта операция действительна только для целевых свойств типа string.
так что в вашем случае это будет
http://192.168.36.95:1026/v2/entities?type=POI&options=keyValues&q=Description~=
Можно применить соответствие REGEXP к полю ID NGSI:
Вы можете фильтровать, используя шаблоны идентификаторов сущностей, используя параметр URL-адреса idPattern (значение которого является регулярным выражением). Например, чтобы получить все сущности, чей идентификатор начинается с Room, а за ним следует число в диапазоне от 2 до 5 (в данном случае при получении Room2), которое вы можете использовать (обратите внимание на параметр -g в командной строке curl, чтобы избежать проблем с скобками): curl localhost:1026/v2/entity?idPattern=^Room[2-5] -g -s -S -H 'Принять: application/json' | python -mjson.tool
находится по адресу: https://fiware-orion.readthedocs.io/en/master/user/walkthrough_apiv2/index.html
Я не уверен, относится ли это также к типу NGSI. Но эта функциональность не распространяется на определенные пользователем атрибуты.