You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[DOCUMENTATION] Command JSON files not updated for 1.3: FT.HYBRID missing "group" will break the valkey.io build; history entries and some arguments missing #1547
The command JSON files in src/commands/ feed the syntax, metadata and history sections of the valkey.io command pages. The website build checks out valkey-search main without pinning a version, so these files go live as-is. Several were not updated for 1.3.0:
ft.hybrid.json has no group field, which will fail the website build. It is also the only command JSON without arity and module_since. The /commands list template reads command_data_obj.group for every command, and Tera errors on a missing field (Variable ... not found in context). commands/ft.hybrid.md landed in valkey-doc on Oct 6 ([BUG] alllow-replace-deleted does not work as expected #500), after the last successful website build on Oct 1, so the next build will be the first one to hit this.
ft.aggregate.json is missing ADDSCORES and SCORER. The parser accepts both (ft_aggregate_parser.cc#L378-L388), and the 1.3.0 release notes advertise ADDSCORES. Neither is in docs/commands/ft.aggregate.md either.
ft.aggregate.json is missing the LOAD <field> AS <alias> form, which docs/commands/ft.aggregate.md documents.
ft.hybrid.json documents VSIM ... RANGE <count> RADIUS <r> [EPSILON <e>] (L154-L193), but ft.hybrid.md#L137 says VSIM RANGE is not implemented and returns an error.
What do you believe is the correct documentation?
ft.hybrid.json: add "group": "search", "module_since": "1.3.0" and "arity": -7 (the shortest valid call is FT.HYBRID <index> SEARCH <query> VSIM <field> <vector>). Since this is a new command, use module_since instead of the current history entry, as ft.cursor.json does.
Add ["1.3.0", "..."] history entries:
FT.CREATE: Added FILTER, SCORE_FIELD, NOHL and SORTABLE UNF options, FLOAT16 and BFLOAT16 vector types, and LANGUAGE support for 12 languages
FT.SEARCH: Added INKEYS, SCORER, WITHSCORES and WITHCURSOR options, BM25STD scoring, VECTOR_RANGE queries and HYBRID_POLICY
FT.AGGREGATE: Added WITHCURSOR, ADDSCORES and SCORER options, TOLIST, FIRST_VALUE and RANDOM_SAMPLE reducers, and LOAD ... AS
FT.INFO: Reports filter_rejected_keys, and the index SCORE/SCORE_FIELD and per-attribute SORTABLE/UNF (with search.emulate-release 1.3.0)
FT._DEBUG (optional): No longer requires debug mode; restricted to the @admin and @dangerous ACL categories
ft.aggregate.json: add optional ADDSCORES (pure-token) and SCORER <scorer> arguments. Document both in ft.aggregate.md here and in valkey-doc.
ft.aggregate.json: add an optional AS <alias> to each LOAD field.
ft.hybrid.json: remove range_block until VSIM RANGE is implemented.
Additional context
main and 1.3 have identical JSON and docs/commands/ files, so a fix on main covers both, and the website picks it up from main.
If your request is related to existing documentation, please provide a link.
For errors in existing documentation
The command JSON files in
src/commands/feed the syntax, metadata and history sections of the valkey.io command pages. The website build checks out valkey-searchmainwithout pinning a version, so these files go live as-is. Several were not updated for 1.3.0:ft.hybrid.jsonhas nogroupfield, which will fail the website build. It is also the only command JSON withoutarityandmodule_since. The/commandslist template readscommand_data_obj.groupfor every command, and Tera errors on a missing field (Variable ... not found in context).commands/ft.hybrid.mdlanded in valkey-doc on Oct 6 ([BUG] alllow-replace-deleted does not work as expected #500), after the last successful website build on Oct 1, so the next build will be the first one to hit this.historyentries inft.create.json,ft.search.json,ft.aggregate.jsonorft.info.json. For 1.2.0 we added these in Add history entries for text indexing and search support in v1.2.0 #909 (b9325e8).ft.aggregate.jsonis missingADDSCORESandSCORER. The parser accepts both (ft_aggregate_parser.cc#L378-L388), and the 1.3.0 release notes advertise ADDSCORES. Neither is indocs/commands/ft.aggregate.mdeither.ft.aggregate.jsonis missing theLOAD <field> AS <alias>form, whichdocs/commands/ft.aggregate.mddocuments.ft.hybrid.jsondocumentsVSIM ... RANGE <count> RADIUS <r> [EPSILON <e>](L154-L193), but ft.hybrid.md#L137 saysVSIM RANGEis not implemented and returns an error.What do you believe is the correct documentation?
ft.hybrid.json: add"group": "search","module_since": "1.3.0"and"arity": -7(the shortest valid call isFT.HYBRID <index> SEARCH <query> VSIM <field> <vector>). Since this is a new command, usemodule_sinceinstead of the currenthistoryentry, asft.cursor.jsondoes.["1.3.0", "..."]history entries:search.emulate-release 1.3.0)ft.aggregate.json: add optionalADDSCORES(pure-token) andSCORER <scorer>arguments. Document both inft.aggregate.mdhere and in valkey-doc.ft.aggregate.json: add an optionalAS <alias>to each LOAD field.ft.hybrid.json: removerange_blockuntilVSIM RANGEis implemented.Additional context
mainand1.3have identical JSON anddocs/commands/files, so a fix onmaincovers both, and the website picks it up frommain.The 'client-id' (or deprecated 'app-id') input must be set to a non-empty string, so the app credentials still need to be added as secrets. Once they are and the rebuild runs, it will hit item 1, so item 1 should merge first.mainat b7f6135, using the command parsers,docs/commands/*.mdand the 1.3.0 release notes.The links to specific lines are pinned to commit b7f6135 so they don't drift.