Le champ combiné tsvector est justement la réponse à #2. Il suffit qu'un mot soit présent, peu importe qu'il vienne du titre ou de l'auteur ou d'un autre champs.
Il faudrait peut-être montrer quelques exemples de requêtes pour étayer la question.
Si "le champ n'est pas renseigné" ne veut pas dire "dans la base il n'est pas renseigné" mais "dans le formulaire de recherche il n'est pas renseigné" alors oui il faut du tsvector par champ, mais peut-être que les trigrammes seraient plus adaptés. Voir l'extension pg_trgm.
Les trigrammes permettent des requêtes du type
select colonnes FROM livre WHERE auteur like '%blabla%'
avec utilisation d'index, et aussi des recherches bruitées.
Partager