DOC-6854 Add redis-rb (Ruby) vector search docs: vecsearch page + ruby_home_query_vec - #3652
Conversation
…y_home_query_vec example Adds the Ruby "Index and query vectors" page and its backing example set, mirroring the redis-py/jedis vecsearch pages (hash + JSON). The embedding library was the open question that got vector search deferred out of DOC-6843; resolved it by reusing the semantic-cache Ruby choice — informers running the ONNX all-MiniLM-L6-v2 encoder locally — the same 384-dim model every other language's page uses, so vectors stay comparable across examples. Normalising the embeddings is what makes the reported L2 distances line up with the canonical page; run-verified against the fork (QE branch) and Redis 8, where informers matched the reference distances to ~7 significant figures, much closer than the ONNX drift I had expected. Learned: informers with normalised embeddings reproduces the canonical L2 distances almost exactly; the deferred embedding-lib decision was already answered by the semantic-cache Ruby example Constraint: keep normalize on for every encode — the L2 distances and cross-example comparability depend on unit vectors Constraint: embedding model/library must stay aligned with the semantic-cache Ruby example (all-MiniLM-L6-v2 via informers) or stored vectors stop being comparable Recheck: when redis-rb#1356 ships in a released redis gem (page is a parked preview against the fork) Ticket: DOC-6854 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_query_vec.rb re-verified green against the released gem on Redis 8.8 with informers 1.3.0 — canonical KNN distances reproduced exactly. 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>
🧠 Redis MemoryFound 5 related items from repository history:
Memory updated at a13be71 |
|
Unpark reflection (predicted vs actual) — 2026-07-31 redis-rb 6.0.0 shipped the Query Engine (
The |
Adds Ruby (redis-rb) coverage for vector search with the Query Engine.
What's here
content/develop/clients/ruby/vecsearch.md— a new "Index and query vectors" page for Ruby, mirroring the redis-py/jedis vector-search pages: indexing text embeddings in hash and JSON documents and running KNN queries, with a section on the differences for JSON documents.local_examples/client-specific/ruby/home_query_vec.rb— theruby_home_query_vecexample set backing the page.Notes for reviewers
informersgem running the ONNXall-MiniLM-L6-v2model (384-dim) — the same model the other languages' vector pages and the Ruby semantic-cache example use, so vectors stay comparable across examples. No external embedding service is required.normalize: true); this is load-bearing — the reported L2 distances and cross-example comparability depend on unit vectors.float32(Array#pack('e*')); JSON stores a plainArray<Float>, but the query parameter is packed bytes either way.ruby_home_query_vecset;data/examples.jsonis git-ignored/generated (Ruby tabs appear when CI regenerates it).Verification
home_query_vec.rbruns green against the released redis-rb 6.0.0 gem (published 2026-07-31) on Redis 8.8 withinformers 1.3.0— exit 0, and the canonical L2 distances (0.114169895649 / 0.610845208168 / 1.48624789715) are reproduced exactly on both the hash and JSON paths. RESP3-as-default changed nothing.