Query » History » Revision 16
Revision 15 (Alison Craig, 03/04/2015 01:21 PM) → Revision 16/29 (Anonymous, 03/04/2015 01:27 PM)
Query
=====
The Query parameter are named as
/<prefix>/query/<query-parameters>
with a response of
/<prefix>/query/<query-parameters>/output
For the Query Protocol, the user will send query parameters as a JSON list, with the format: <tt>{[field1]=[search1],[field2]=[search2],?=[search3]</tt>} where <tt>field1</tt> and <tt>field2</tt> are Name components, <tt>?</tt> indicates an autocomplete search, and <tt>search*</tt> is what to use for searching on. <i>(See [[Schema]])</i>
In response, the Query backend of the Catalog will make Data available that includes a list of names that match the query.
----
<b>JSON Schemas</b>
<b><i>JSON Query</i></b>
The query name is formatted JSON stored in the query-parameters of the Interest:
/<prefix>/query/<query-parameters>
```
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "catalog query", "Catalog Query",
"type": "object", "array",
"items": {
"title": "query parameters", "QueryField",
"type": "object",
"properties": {
"name": "Name": {
"type": "string"
},
"activity": "Activity": {
"type": "string"
},
"product": "Product": {
"type": "string"
},
"organization": "Organization": {
"type": "string"
},
"model": "Model": {
"type": "string"
},
"experiment": "Experiment": {
"type": "string"
},
"frequency": "Frequency": {
"type": "string"
},
"modeling realm": {
"type": "string"
},
"variable name": {
"type": "string"
},
"ensemble member": {
"type": "string"
},
"ensemble": "Ensemble": {
"type": "string"
},
"sample },"Sample Granularity": {
"type": "string"
},
"start time": },"Start Time": {
"type": "string"
},
"field },"field campaign": {
"type": "string"
},
"optical properties for radiation": {
"type": "string"
},
"grid resolution": {
"type": "string"
},
"output }"output type": {
"type": "string"
},
"timestamp": {
"type": "string"
},
"?": {
"description": "Autocomplete search field"
"type": "string"
}
},
"required": []
}
}
```
<b><i>Query Results Data JSON</b></i>
With the query results, the Data returns the Query Results by using the query parameters (above) in the Name produced and a JSON Blob for the results:
/<prefix>/query/<query-parameters>/output
```
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Catalog Query Result",
"type": "array",
"items": {
"title": "QueryResults",
"type": "object",
"properties": {
"Length": {
"description": "Total number of results"
"type": "integer"
},
"View": {
"minimum": 2
"maximum": 2
"description": "Pair of integers indicating which subset of the results we are receiving (first value being the lower index, second the upper index)"
"type": Array
},
"Results": {
"description": "List of NDN names"
"type": Array
},
"Next": {
"description": "Autocomplete search potential next field(s)"
"type": Array
}
},
"required": [Length,View]
},
}
```