diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 13:40:54 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 13:40:54 +0000 |
commit | 317c0644ccf108aa23ef3fd8358bd66c2840bfc0 (patch) | |
tree | c417b3d25c86b775989cb5ac042f37611b626c8a /src/commands/geosearch.json | |
parent | Initial commit. (diff) | |
download | redis-317c0644ccf108aa23ef3fd8358bd66c2840bfc0.tar.xz redis-317c0644ccf108aa23ef3fd8358bd66c2840bfc0.zip |
Adding upstream version 5:7.2.4.upstream/5%7.2.4
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/commands/geosearch.json')
-rw-r--r-- | src/commands/geosearch.json | 267 |
1 files changed, 267 insertions, 0 deletions
diff --git a/src/commands/geosearch.json b/src/commands/geosearch.json new file mode 100644 index 0000000..b2e2825 --- /dev/null +++ b/src/commands/geosearch.json @@ -0,0 +1,267 @@ +{ + "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" + } + ] + } + ] + } + } + } + ] + } + } +} |