Skip to content

[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

Description

@Frank-Gu-81

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-search main without pinning a version, so these files go live as-is. Several were not updated for 1.3.0:

  1. 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.
  2. No 1.3.0 history entries in ft.create.json, ft.search.json, ft.aggregate.json or ft.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).
  3. 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.
  4. ft.aggregate.json is missing the LOAD <field> AS <alias> form, which docs/commands/ft.aggregate.md documents.
  5. 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?

  1. 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.
  2. 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
  3. ft.aggregate.json: add optional ADDSCORES (pure-token) and SCORER <scorer> arguments. Document both in ft.aggregate.md here and in valkey-doc.
  4. ft.aggregate.json: add an optional AS <alias> to each LOAD field.
  5. ft.hybrid.json: remove range_block until VSIM RANGE is implemented.

Additional context

The links to specific lines are pinned to commit b7f6135 so they don't drift.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

1.3.0Issues to be included in v1.3.0P2bugSomething isn't workingdocumentationImprovements or additions to documentation

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions