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/
部分:简单查询语言
非常感谢。
我们使用 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/ 部分:简单查询语言
非常感谢。