[resolu] La meilleur facon de faire un recherche sur plusieurs table et plusieurs terme
Bonjour,
je fais actuellement un outils de recherche en utilisant une table article qui dispose de 3 champs
[titre] [liens] [description]
La reponse doit s'effectuer selon les priorites suivantes :
- le titre
- le liens
- la description
Je procede de la maniere suivante :
tous les termes associe sont dans query
Je recupere aussi chaque terme separement et je les mets dans un tableau:
query;
querytab[];
ma requete :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| select article_id, article_titre, article_lien, article_description
from article
where article_title ilike '%" + query + "%'
union
select article_id, article_titre, article_liens, article_description
from article
where article_lien ilike '%" + query + "%'
union
select article_id, article_titre, article_liens, article_description
from article
where article_description ilike '%" + query + "%'
union
debut boucle
select article_id, article_titre, article_liens, article_description
from article
where article_title ilike '%" + querytab[i] + "%' or article_lien ilike '%" + querytab[i] or article_description ilike '%" + querytab[i]
i++;
fin boucle |
Voila, pour donner une idee. Et j'aimerais savoir si ma requete est efficace ou si ya mieux, parceque ca avec plus de 3 termes ca devient tres lent.
bdd = postgres pour 39000 entrees.