English learner
English learner

Reputation: 194

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

We are using Orion Context Broker as our database. Recently, We have meet an requirement that user want to find a City by name of this City container a keyword.

For example:

We have city name likes this. Hanoi, Madrid, London, Barcelona, Paris, Lyon.

If user type: "on", we should show Lyon, London.

The city object like this.

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

So I am wondering if any queryContext filtering can help us to sort out this case. I have done some research and there is no good sounds on this.

Many thanks.

Upvotes: 1

Views: 177

Answers (2)

fgalan
fgalan

Reputation: 12322

You can use idPattern in GET /v2/entities which value is a regular expression. Thus the following query:

GET /v2/entities?idPattern=on

should return any City with the "on" substring in its id.

EDIT: if you want to apply a pattern to the value of some attribute, then you have to use q query parameter and the ~= NGSIv2 Simple Query Operator. Something like this:

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

Upvotes: 1

English learner
English learner

Reputation: 194

I have figured out that we use ~= operation to do that.

Please see the follow quote.

Match pattern: ~=. The value matches a given pattern, expressed as a regular expression, e.g. color~=ow. For an entity to match, it must contain the target property (color) and the target property value must match the string in the right-hand side, 'ow' in this example (brown and yellow would match, black and white would not). This operation is only valid for target properties of type string.

http://telefonicaid.github.io/fiware-orion/api/v2/stable/ Section: Simple Query Language

Many thanks.

Upvotes: 0

Related Questions