14 lines
657 B
MySQL
14 lines
657 B
MySQL
|
|
-- Recherche plein texte façon Spotlight : sur le nom du fichier *et* sur
|
||
|
|
-- son contenu extrait à l'upload (voir files::upload). Colonne générée
|
||
|
|
-- STORED plutôt que calculée à la volée dans chaque requête : l'index
|
||
|
|
-- GIN a besoin d'une colonne matérialisée pour être utilisable.
|
||
|
|
ALTER TABLE files ADD COLUMN content_text TEXT;
|
||
|
|
|
||
|
|
ALTER TABLE files ADD COLUMN search_vector tsvector
|
||
|
|
GENERATED ALWAYS AS (
|
||
|
|
setweight(to_tsvector('french', coalesce(filename, '')), 'A') ||
|
||
|
|
setweight(to_tsvector('french', coalesce(content_text, '')), 'B')
|
||
|
|
) STORED;
|
||
|
|
|
||
|
|
CREATE INDEX files_search_vector_idx ON files USING GIN (search_vector);
|