DOC-6843 Add redis-rb (Ruby) Query Engine docs: queryjson - #3641
Conversation
… command mappings Preemptive, parked docs for redis-rb's Query Engine (RediSearch), which merged upstream in redis-rb #1356 but is not yet in a released gem — the latest is v5.4.1 from July 2025, which predates it. Adds the "Index and query documents" page for Ruby, a run-verified example set, and redis_rb signatures across the FT.* command-api-mapping files. Builds on the parked JSON docs (DOC-6842), since the index-documents page indexes JSON documents. Three non-obvious things for whoever edits these next. First, the page embeds the ruby_home_json set, not the query_ft/query_em/etc sets — those back the search-and-query tutorial pages, a different area, so adding Ruby there is a separate job. Second, redis-rb's Search::Index strips the index key prefix from returned document ids, so the client reports the logical id ("3") rather than the full key ("user:3") as redis-py does; the page and example call this out so the output comments aren't mistaken for errors. Third, the example's outputs and REMOVE-block asserts are not guesses — the file was run against the local redis-rb fork (master, PR #1356) on Redis 8.8 and passed all steps, so the only real risk is the upstream API changing before the gem ships. For the mappings, FT.CREATE/SEARCH/AGGREGATE/DROPINDEX carry both the high-level (create_index/search/aggregate/drop) and the low-level ft_* signature, because the fork ships that two-layer API deliberately; the rest carry just the ft_* method. FT.EXPLAINCLI and FT._LIST are omitted — redis-rb has no method for them. Learned: redis-rb Index strips the key prefix from doc ids; queryjson embeds the *_home_json set not the query_* tutorial sets; outputs run-verified against the fork, not guessed Constraint: regenerate data/command-api-mapping.json with build/merge-command-api-mapping.sh after editing per-command files — never hand-edit the merged file, and run the script with the sandbox off (its mktemp hits the blocked system temp dir) Directive: parked — do not merge until redis-rb ships the Query Engine in a released gem; vecsearch.md and Ruby snippets in the search-and-query tutorial pages are deferred follow-ups Recheck: next redis-rb gem release (Query Engine is master-only via PR #1356) Gaps: verified against fork master on Redis 8.8, not a released gem — re-run the example and add a "requires redis-rb vX.Y+" note at pickup Ticket: DOC-6843 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Query Engine support this page documents isn't in a released gem yet, so warn readers the API is subject to change until pickup. Ticket: DOC-6843 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Renamed the parked-PR thaw skill from `/pickup` to `/unpark` — directory, frontmatter, title, and prose — to free the `/pickup` name for another skill where it fits better; `park`/`unpark` also reads as a cleaner verb pair. Updated the two files that reference it, `/park` and the shared `_shared/park-manifest.md` contract, so the pairing stays consistent. The three parked PRs that instructed `/pickup <n>` (#3611, #3641, #3652) were updated out-of-band so no stale invocation survives. Approved by dwdougherty; Cursor Bugbot clean. Directive: Two "pickup" strings are left un-renamed on purpose — the historical .claude/state/assess-comments.coverage.md audit log (it records the skill's old name as it was at the time; renaming falsifies history) and the "Trigger to pick up:" manifest field name in park-manifest.md (a header field, not the skill name). Don't "fix" them in a follow-up grep-and-replace. Ticket: DOC-6876 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…eleased) redis-rb 6.0.0 shipped the Query Engine (search module) to rubygems.org on 2026-07-31; home_json.rb re-verified green against the released gem on Redis 8.8. Remove the 'not yet in a released gem' banner and add a v6.0.0+ note. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Unpark reflection (predicted vs actual) — 2026-07-31 redis-rb 6.0.0 shipped the Query Engine (
Not done (deliberately): a |
🧠 Redis MemoryFound 5 related items from repository history:
Memory updated at e874faf |
Adds Ruby (redis-rb) coverage for the Query Engine (RediSearch /
FT.*).What's here
content/develop/clients/ruby/queryjson.md— a new "Index and query documents" page for Ruby, covering index creation, search, field projection, and aggregation over both JSON and hash documents.local_examples/client-specific/ruby/home_json.rb— theruby_home_jsonexample set backing the page.redis_rbsignatures across theFT.*command-api-mapping files (data/command-api-mapping.jsonregenerated viabuild/merge-command-api-mapping.sh).Notes for reviewers
Search::Indexstrips the index key prefix from returned document IDs —doc.idis the logical id (3), not the full key (user:3) as redis-py returns. The page and example call this out so the output comments don't look like errors.FT.CREATE/SEARCH/AGGREGATE/DROPINDEXcarry both the high-level (create_index/search/aggregate/drop) and low-level (ft_*) signatures; the rest carryft_*only.FT.EXPLAINCLIandFT._LISTare omitted (redis-rb has no method for them).ruby_home_jsonset;data/examples.jsonis git-ignored/generated, so the Ruby tab appears when CI regenerates it (not in this diff).Verification
home_json.rbruns green against the released redis-rb 6.0.0 gem (published 2026-07-31) on Redis 8.8 with the search module — exit 0, all asserts pass. RESP3-as-default changed no return shapes.