Orion Context Broker 如何按名称过滤包含关键字的对象

Orion Context Broker How to filter an object by name contains a keyword

我们使用 Orion Context Broker 作为我们的数据库。 最近,我们遇到了一个需求,用户希望通过这个城市容器的名称来查找一个城市。

例如:

我们有这样的城市名称。河内、马德里、伦敦、巴塞罗那、巴黎、里昂。

如果用户类型:"on",我们应该显示伦敦里昂。

这样的城市对象。

 {
            "type": "City",
            "isPattern": "false",
            "id": "city1",
            "attributes": [
                {
                    "name": "name",
                    "type": "string",
                    "value": "London"
                }
            ]
        }

所以我想知道是否有任何queryContext过滤可以帮助我们解决这个问题。 我做了一些研究,没有好的声音。

非常感谢。

您可以在GET /v2/entities中使用idPattern,其中的值是一个正则表达式。因此下面的查询:

GET /v2/entities?idPattern=on

应该 return 任何在其 ID 中包含 "on" 子字符串的城市。

编辑: 如果要将模式应用于某些属性的值,则必须使用 q 查询参数和 ~= NGSIv2 简单查询运算符。像这样:

GET /v2/entities?q=colour~=or

我发现我们可以使用 ~= 操作来做到这一点。

请看下面的引用。

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

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

非常感谢。