Filtered vector search: predicate-aware HNSW traversal, vectorFilter, allowReadRecord (5.2)#580
Conversation
…orFilter, allowReadRecord, filterExpansion (5.2) Companion to HarperFast/harper#1768. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-580 This preview will update automatically when you push new commits. |
…ReadRecord Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-580 This preview will update automatically when you push new commits. |
dawsontoth
left a comment
There was a problem hiding this comment.
I wonder if we could also guide people on when they should choose to structure their data differently. I'm thinking about a single table that has a million records in it, and 50 of them are owned by a single user. That user can search their own records. Is our vector filtering be smart enough to perform the first stage of cutting it down to only what they can access before performing the more intensive comparison operations? What happens if someone is using the REST query strings and tries to do a vector search and limit down the results?
…ride replaces allowReadRecord Matches the unified model (record-scoped allowRead, #1422 gap 2) that supersedes the static allowReadRecord hook before 5.2 ships. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-580 This preview will update automatically when you push new commits. |
…ed allowRead (#1419) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-580 This preview will update automatically when you push new commits. |
…tion + subscribe re-auth) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-580 This preview will update automatically when you push new commits. |
You would need to use an indexed field in the query (and it should be smart enough to consider that), but allowRead is imperative JS code that is inherently opaque and can't inform an index selection. |
🧹 Preview CleanupThe preview deployment for this PR has been removed. |
Documents the filtered vector search feature shipping in 5.2 — companion to HarperFast/harper#1768 (Predicate-aware HNSW traversal: filtered vector search with user-function and RBAC participation).
reference/database/schema.md(Vector Indexing): predicate-aware traversal semantics for conditions + vector sort, newvectorFilterfunction predicate (JS-API only, constraints documented), record-levelallowReadRecordRBAC pattern and its scope (query-result filter, not aget()authorization boundary),filterExpansiontuning subsection + parameters-table row.release-notes/v5-lincoln/5.2.md: Querying section entry.Generated by KrAIs (Claude Opus 4.8).