perf(search): trigram indexes for sender/domain filters #17

Merged
cesnimda merged 1 commits from feature/search-trgm-index into develop 2026-07-02 01:55:59 +02:00
Owner

Slice 5 (perf): gin_trgm_ops indexes on Sender.Address/DisplayName + MailDomain.Name so the .Contains() (LIKE '%x%') filters are index-accelerated. Verified via EXPLAIN on live Postgres (Bitmap Index Scan). No behaviour change.

🤖 Generated with Claude Code

Slice 5 (perf): gin_trgm_ops indexes on Sender.Address/DisplayName + MailDomain.Name so the .Contains() (LIKE '%x%') filters are index-accelerated. Verified via EXPLAIN on live Postgres (Bitmap Index Scan). No behaviour change. 🤖 Generated with Claude Code
cesnimda added 1 commit 2026-07-02 01:53:45 +02:00
perf(search): trigram GIN indexes on sender/domain for .Contains() filters
CI / backend (pull_request) Successful in 55s
CI / frontend (pull_request) Successful in 17s
Security / secrets (pull_request) Successful in 4s
Security / dependencies (pull_request) Successful in 55s
be34faf864
Slice 5 of search-core (perf). The sender/domain search filters use .Contains()
which EF translates to LIKE '%x%' — non-sargable on a btree (sequential scan). Add
gin_trgm_ops GIN indexes on Sender.Address, Sender.DisplayName, and MailDomain.Name
so those become index-accelerated (pg_trgm already enabled). No behaviour change.

Verified against live Postgres: EXPLAIN shows 'Bitmap Index Scan' on the trigram
index for LIKE '%x%'. Migration DDL dry-run applied cleanly. Build + all 40 tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
cesnimda merged commit 06b050a5ed into develop 2026-07-02 01:55:59 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cesnimda/Inboxintel#17