Orion Context Broker使用带有数字的匹配模式

问题描述 投票:1回答:1

例如,我有一个像下面这样的人。我想查询某人的phoneNumber包含“ 354”。我将使用以下查询:GET /v2/entities?q=phoneNumber~=354。那么有可能在orion上下文代理中进行这样的查询吗?如我所见,匹配模式仅支持target属性为字符串。

匹配模式:〜=。该值匹配给定的模式,表示为正则表达式,例如颜色〜= ow。为了使实体匹配,它必须包含目标属性(颜色),并且目标属性值必须匹配右侧的字符串,在此示例中为“ ow”(棕色和黄色会匹配,而黑色和白色不会匹配)。该操作是仅对字符串类型的目标属性有效。

[http://telefonicaid.github.io/fiware-orion/api/v2/stable/部分:简单查询语言

 {
        "type": "Person",
        "isPattern": "false",
        "id": "1",
        "attributes": [
            {
                "name": "phoneNumber",
                "type": "string",
                "value": "0102354678"
            }
        ]
    }

非常感谢。

fiware-orion
1个回答
0
投票

正如您所说的那样。

例如,将Orion 2.2.0与本地数据库中的空数据库一起使用:1026,创建一个与您建议的实体类似的实体(但使用NGSIv2端点,因为NGSIv1是已弃用的API):

$ curl localhost:1026/v2/entities -H 'content-type: application/json' -d @- <<EOF
{
        "type": "Person",
        "id": "1",
        "phoneNumber": {
                "type": "string",
                "value": "0102354678"
            }
}
EOF

然后,您可以使用“ 354”模式进行查询,您将获得实体:

$ curl -s -S 'localhost:1026/v2/entities?q=phoneNumber~=354' | python -mjson.tool
[
    {
        "id": "1",
        "phoneNumber": {
            "metadata": {},
            "type": "string",
            "value": "0102354678"
        },
        "type": "Person"
    }
]

相反,如果您查询不匹配的模式(例如“ 999”),则不会获得任何实体:

$ curl -s -S 'localhost:1026/v2/entities?q=phoneNumber~=999' | python -mjson.tool
[]
© www.soinside.com 2019 - 2024. All rights reserved.