Searching Instances: Search¶
We assume that you have generated a SDK for the Windmill
model and have a client ready to go.
pygen
automatically generates a search method for the text based properties in the views.
In [2]:
Copied!
from windmill import WindmillClient
from windmill import WindmillClient
In [3]:
Copied!
client = WindmillClient.from_toml("config.toml")
client = WindmillClient.from_toml("config.toml")
In [4]:
Copied!
result = client.windmill.search("Hornsea")
result
result = client.windmill.search("Hornsea")
result
Out[4]:
space | external_id | blades | capacity | metmast | nacelle | name | rotor | windfarm | node_type | data_record | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | windmill-instances | hornsea_1_mill_3 | None | 7.0 | None | nacellewrite:1 | hornsea_1_mill_3 | rotorwrite:1 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
1 | windmill-instances | hornsea_1_mill_2 | None | 7.0 | None | nacellewrite:2 | hornsea_1_mill_2 | rotorwrite:2 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
2 | windmill-instances | hornsea_1_mill_1 | None | 7.0 | None | nacellewrite:3 | hornsea_1_mill_1 | rotorwrite:3 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
3 | windmill-instances | hornsea_1_mill_4 | None | 7.0 | None | nacellewrite:4 | hornsea_1_mill_4 | rotorwrite:4 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
4 | windmill-instances | hornsea_1_mill_5 | None | 7.0 | None | nacellewrite:5 | hornsea_1_mill_5 | rotorwrite:5 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
In [5]:
Copied!
result[0]
result[0]
Out[5]:
value | |
---|---|
space | windmill-instances |
external_id | hornsea_1_mill_3 |
data_record | {'version': 2, 'last_updated_time': 2024-02-10... |
node_type | None |
blades | None |
capacity | 7.0 |
metmast | None |
nacelle | nacellewrite:1 |
name | hornsea_1_mill_3 |
rotor | rotorwrite:1 |
windfarm | Hornsea 1 |
By default, search
checks all text fields in the underlying view, but we can also specify which properties to search
In [6]:
Copied!
result = client.windmill.search("Hornsea", properties="windfarm")
result
result = client.windmill.search("Hornsea", properties="windfarm")
result
Out[6]:
space | external_id | blades | capacity | metmast | nacelle | name | rotor | windfarm | node_type | data_record | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | windmill-instances | hornsea_1_mill_3 | None | 7.0 | None | nacellewrite:1 | hornsea_1_mill_3 | rotorwrite:1 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
1 | windmill-instances | hornsea_1_mill_2 | None | 7.0 | None | nacellewrite:2 | hornsea_1_mill_2 | rotorwrite:2 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
2 | windmill-instances | hornsea_1_mill_1 | None | 7.0 | None | nacellewrite:3 | hornsea_1_mill_1 | rotorwrite:3 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
3 | windmill-instances | hornsea_1_mill_4 | None | 7.0 | None | nacellewrite:4 | hornsea_1_mill_4 | rotorwrite:4 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
4 | windmill-instances | hornsea_1_mill_5 | None | 7.0 | None | nacellewrite:5 | hornsea_1_mill_5 | rotorwrite:5 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
The .search
methods has the same filtering options as the .list
method
In [7]:
Copied!
result = client.windmill.search("Hornsea", min_capacity=6.0)
result
result = client.windmill.search("Hornsea", min_capacity=6.0)
result
Out[7]:
space | external_id | blades | capacity | metmast | nacelle | name | rotor | windfarm | node_type | data_record | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | windmill-instances | hornsea_1_mill_3 | None | 7.0 | None | nacellewrite:1 | hornsea_1_mill_3 | rotorwrite:1 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
1 | windmill-instances | hornsea_1_mill_2 | None | 7.0 | None | nacellewrite:2 | hornsea_1_mill_2 | rotorwrite:2 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
2 | windmill-instances | hornsea_1_mill_1 | None | 7.0 | None | nacellewrite:3 | hornsea_1_mill_1 | rotorwrite:3 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
3 | windmill-instances | hornsea_1_mill_4 | None | 7.0 | None | nacellewrite:4 | hornsea_1_mill_4 | rotorwrite:4 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
4 | windmill-instances | hornsea_1_mill_5 | None | 7.0 | None | nacellewrite:5 | hornsea_1_mill_5 | rotorwrite:5 | Hornsea 1 | None | {'version': 2, 'last_updated_time': 2024-02-10... |
Note that .search()
should be used for searching and not filtering. If you only want to filter use the .list()
method
Next section: Aggregation
In [ ]:
Copied!