feat: add pg_trgm extension and GIN indexes for fuzzy search
- Enable pg_trgm extension for trigram-based string matching - Add GIN indexes on media_items text fields (title, author, series, tags, contributors) - Supports efficient partial matching and fuzzy search fallback
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
-- Consolidated Bookmann Database Schema
|
-- Consolidated Bookmann Database Schema
|
||||||
-- This file contains the complete current schema for the Bookmann media library management system
|
-- This file contains the complete current schema for the Bookmann media library management system
|
||||||
|
|
||||||
|
-- Enable pg_trgm extension for fuzzy string matching and partial search
|
||||||
|
CREATE EXTENSION IF NOT EXISTS pg_trgm;
|
||||||
|
|
||||||
-- Create library types table
|
-- Create library types table
|
||||||
CREATE TABLE library_types (
|
CREATE TABLE library_types (
|
||||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
@@ -244,6 +247,13 @@ CREATE INDEX idx_media_items_author ON media_items(author);
|
|||||||
CREATE INDEX idx_media_items_library_id ON media_items(library_id);
|
CREATE INDEX idx_media_items_library_id ON media_items(library_id);
|
||||||
CREATE INDEX idx_media_items_added_by_admin_id ON media_items(added_by_admin_id);
|
CREATE INDEX idx_media_items_added_by_admin_id ON media_items(added_by_admin_id);
|
||||||
|
|
||||||
|
-- GIN indexes for fast fuzzy search using pg_trgm
|
||||||
|
CREATE INDEX idx_media_items_title_gin ON media_items USING gin (title gin_trgm_ops);
|
||||||
|
CREATE INDEX idx_media_items_author_gin ON media_items USING gin (author gin_trgm_ops);
|
||||||
|
CREATE INDEX idx_media_items_series_gin ON media_items USING gin (series gin_trgm_ops);
|
||||||
|
CREATE INDEX idx_media_items_tags_gin ON media_items USING gin (tags gin_trgm_ops);
|
||||||
|
CREATE INDEX idx_media_items_contributors_gin ON media_items USING gin (contributors gin_trgm_ops);
|
||||||
|
|
||||||
-- Progress and ratings indexes
|
-- Progress and ratings indexes
|
||||||
CREATE INDEX idx_reading_progress_media_item_id ON reading_progress(media_item_id);
|
CREATE INDEX idx_reading_progress_media_item_id ON reading_progress(media_item_id);
|
||||||
CREATE INDEX idx_reading_progress_user_id ON reading_progress(user_id);
|
CREATE INDEX idx_reading_progress_user_id ON reading_progress(user_id);
|
||||||
|
|||||||
Reference in New Issue
Block a user