From 317c0644ccf108aa23ef3fd8358bd66c2840bfc0 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 14 Apr 2024 15:40:54 +0200 Subject: Adding upstream version 5:7.2.4. Signed-off-by: Daniel Baumann --- src/commands/geosearch.json | 267 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 267 insertions(+) create mode 100644 src/commands/geosearch.json (limited to 'src/commands/geosearch.json') 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" + } + ] + } + ] + } + } + } + ] + } + } +} -- cgit v1.2.3