Real-time inserts index raw values instead of display values #28

Closed
opened 2026-10-10 00:12:14 +00:00 by KofTwentyTwo · 0 comments
KofTwentyTwo commented 2026-10-10 00:12:14 +00:00 (Migrated from github.com)

Found adopting 1.0.0-RC.2 in Voyage (QRun-IO/Voyage#112). A real-time INSERT is indexed with raw field values. Display values and possible-value labels are never applied: a companyId foreign key is stored as "1", and the record label as "2 - email". The next basepull corrects the document, but between an insert and that basepull, search shows wrong labels and snippets.

Updates do not have this problem, because the listener re-reads them with display values (fetchCurrentRecords). Inserts use the event's records directly.

Fix: build INSERT documents the same way updates are built (a re-read with display values, or the same enrichment path), with the same failure handling as #13. Add a test asserting that a just-inserted record's document carries display values and the PVS label.

Part of #12.

Found adopting `1.0.0-RC.2` in Voyage (QRun-IO/Voyage#112). A real-time INSERT is indexed with raw field values. Display values and possible-value labels are never applied: a `companyId` foreign key is stored as "1", and the record label as "2 - email". The next basepull corrects the document, but between an insert and that basepull, search shows wrong labels and snippets. Updates do not have this problem, because the listener re-reads them with display values (`fetchCurrentRecords`). Inserts use the event's records directly. Fix: build INSERT documents the same way updates are built (a re-read with display values, or the same enrichment path), with the same failure handling as #13. Add a test asserting that a just-inserted record's document carries display values and the PVS label. Part of #12.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: QRun-IO/qbit-quick-search#28