20. フィルタリング
• NGSIv1 では
– 制限されたフィルタリング機能、これは queryContext の複雑なスコープに基づいて
います
– サブスクリプションではフィルタがサポートされていません
• NGSIv2では、メカニズムは、
– もっと簡単です (次のスライドをご覧ください)
– クエリとサブスクリプションの両方に適用できます
(このプレゼンテーションの後のトピックで説明します)
20
POST /v1/queryContext
…
{
"restriction": {
"scopes": [
{
"type" : "FIWARE::StringFilter",
"value" : "temp<24"
…
}
This is the only interesting
part, all the rest is
structural overhead
Example: filtering entities
which temperature is less
than 24
21. • GET /v2/entities 操作では、 …すべてのエンティティを取得します
– ... 特定のエンティティ・タイプのエンティティ
– ... エンティティ id は、リストの中です
– ... エンティティ id が正規表現パターンと一致します
• 例: id は “Room” で始まり、2から5までの数字が続きます
– …指定された式に一致する属性を持つ、エンティティ
• 例: 属性 temp が25より大きい
• フィルタは同時に使用できます (例: AND 条件など)
21
GET /v2/entities?type=Room
GET /v2/entities?id=Room1,Room2
GET /v2/entities?idPattern=^Room[2-5]
フィルタリング
GET /v2/entities?q=temp>25
サポートされる演算子:
• == (or :), equal
• !=, unequal
• >, greater than
• <, less than
• >=, greater than or
equal
• <=, less than or equal
• A..B, range
• ^=, pattern (regex)
• Existence/inexistence
22. • GET /v2/entities 操作では、 …すべてのエンティティを取得します
– ...エンティのエンティティ・タイプは正規表現パターンと一致します
– …サブキーが与えられた式に一致する属性を持つエンティ
– …与えられた式にマッチする属性メタデータをもつエンティティ
– …サブキーが与えられた式にマッチする属性メタデータを持つエンティティ
22
GET /v2/entities?q=tirePressure.frontRight >130
属性名 属性サブキー (複合属性値のみ)
GET /v2/entities?mq=temperature.avg>25
GET /v2/entities?mq=tirePressure.accuracy.frontRight >90
メタデータ・サブキー
(複合メタデータ値のみ)
メタデータ名
フィルタリング
GET /v2/entities?typePattern=T[ABC]