
This is an attempt to normalize/formalize command summaries. Main actions performed: * Starts with the continuation of the phrase "The XXXX command, when called, ..." for user commands. * Starts with "An internal command...", "A container command...", etc... when applicable. * Always uses periods. * Refrains from referring to other commands. If this is needed, backquotes should be used for command names. * Tries to be very clear about the data type when applicable. * Tries to mention additional effects, e.g. "The key is created if it doesn't exist" and "The set is deleted if the last member is removed." * Prefers being terse over verbose. * Tries to be consistent.
268 lines
9.7 KiB
JSON
268 lines
9.7 KiB
JSON
{
|
|
"GEOSEARCH": {
|
|
"summary": "Queries a geospatial index for members inside an area of a box or a circle.",
|
|
"complexity": "O(N+log(M)) where N is the number of elements in the grid-aligned bounding box area around the shape provided as the filter and M is the number of items inside the shape",
|
|
"group": "geo",
|
|
"since": "6.2.0",
|
|
"arity": -7,
|
|
"function": "geosearchCommand",
|
|
"history": [
|
|
[
|
|
"7.0.0",
|
|
"Added support for uppercase unit names."
|
|
]
|
|
],
|
|
"command_flags": [
|
|
"READONLY"
|
|
],
|
|
"acl_categories": [
|
|
"GEO"
|
|
],
|
|
"key_specs": [
|
|
{
|
|
"flags": [
|
|
"RO",
|
|
"ACCESS"
|
|
],
|
|
"begin_search": {
|
|
"index": {
|
|
"pos": 1
|
|
}
|
|
},
|
|
"find_keys": {
|
|
"range": {
|
|
"lastkey": 0,
|
|
"step": 1,
|
|
"limit": 0
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"arguments": [
|
|
{
|
|
"name": "key",
|
|
"type": "key",
|
|
"key_spec_index": 0
|
|
},
|
|
{
|
|
"name": "from",
|
|
"type": "oneof",
|
|
"arguments": [
|
|
{
|
|
"token": "FROMMEMBER",
|
|
"name": "member",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"token": "FROMLONLAT",
|
|
"name": "fromlonlat",
|
|
"type": "block",
|
|
"arguments": [
|
|
{
|
|
"name": "longitude",
|
|
"type": "double"
|
|
},
|
|
{
|
|
"name": "latitude",
|
|
"type": "double"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "by",
|
|
"type": "oneof",
|
|
"arguments": [
|
|
{
|
|
"name": "circle",
|
|
"type": "block",
|
|
"arguments": [
|
|
{
|
|
"token": "BYRADIUS",
|
|
"name": "radius",
|
|
"type": "double"
|
|
},
|
|
{
|
|
"name": "unit",
|
|
"type": "oneof",
|
|
"arguments": [
|
|
{
|
|
"name": "m",
|
|
"type": "pure-token",
|
|
"token": "m"
|
|
},
|
|
{
|
|
"name": "km",
|
|
"type": "pure-token",
|
|
"token": "km"
|
|
},
|
|
{
|
|
"name": "ft",
|
|
"type": "pure-token",
|
|
"token": "ft"
|
|
},
|
|
{
|
|
"name": "mi",
|
|
"type": "pure-token",
|
|
"token": "mi"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "box",
|
|
"type": "block",
|
|
"arguments": [
|
|
{
|
|
"token": "BYBOX",
|
|
"name": "width",
|
|
"type": "double"
|
|
},
|
|
{
|
|
"name": "height",
|
|
"type": "double"
|
|
},
|
|
{
|
|
"name": "unit",
|
|
"type": "oneof",
|
|
"arguments": [
|
|
{
|
|
"name": "m",
|
|
"type": "pure-token",
|
|
"token": "m"
|
|
},
|
|
{
|
|
"name": "km",
|
|
"type": "pure-token",
|
|
"token": "km"
|
|
},
|
|
{
|
|
"name": "ft",
|
|
"type": "pure-token",
|
|
"token": "ft"
|
|
},
|
|
{
|
|
"name": "mi",
|
|
"type": "pure-token",
|
|
"token": "mi"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "order",
|
|
"type": "oneof",
|
|
"optional": true,
|
|
"arguments": [
|
|
{
|
|
"name": "asc",
|
|
"type": "pure-token",
|
|
"token": "ASC"
|
|
},
|
|
{
|
|
"name": "desc",
|
|
"type": "pure-token",
|
|
"token": "DESC"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "count-block",
|
|
"type": "block",
|
|
"optional": true,
|
|
"arguments": [
|
|
{
|
|
"token": "COUNT",
|
|
"name": "count",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "any",
|
|
"token": "ANY",
|
|
"type": "pure-token",
|
|
"optional": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "withcoord",
|
|
"token": "WITHCOORD",
|
|
"type": "pure-token",
|
|
"optional": true
|
|
},
|
|
{
|
|
"name": "withdist",
|
|
"token": "WITHDIST",
|
|
"type": "pure-token",
|
|
"optional": true
|
|
},
|
|
{
|
|
"name": "withhash",
|
|
"token": "WITHHASH",
|
|
"type": "pure-token",
|
|
"optional": true
|
|
}
|
|
],
|
|
"reply_schema": {
|
|
"description": "Array of matched members information",
|
|
"anyOf": [
|
|
{
|
|
"description": "If no WITH* option is specified, array of matched members names",
|
|
"type": "array",
|
|
"items": {
|
|
"description": "name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"maxItems": 4,
|
|
"items": [
|
|
{
|
|
"description": "Matched member name",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"additionalItems": {
|
|
"oneOf": [
|
|
{
|
|
"description": "If WITHDIST option is specified, the distance from the center as a floating point number, in the same unit specified in the radius",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "If WITHHASH option is specified, the geohash integer",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"description": "If WITHCOORD option is specified, the coordinates as a two items x,y array (longitude,latitude)",
|
|
"type": "array",
|
|
"minItems": 2,
|
|
"maxItems": 2,
|
|
"items": [
|
|
{
|
|
"description": "latitude (x)",
|
|
"type": "number"
|
|
},
|
|
{
|
|
"description": "longitude (y)",
|
|
"type": "number"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|