j'utilise une base de donnée mysql.
j'ai les tables suivants:
"table_keywords" qui contient les champs suivants id_key, keyword (58000 lignes )
"lien" qui contient id_link et d'autres donées (12000 lignes)
table_key_url qui contient id_link, id_key, note (600000 lignes)
Je veux séléctionner à traver une requête tous les liens qui contiennent les mots clés à rechercher
en tenant compte de l'orde du note de la relation
(tous les mots / n'importe quel mot )
Voila ma requête
SELECT tku.id_link, tku.position, sum( tku.note ) AS NOTE
FROM `table_keywords` tk, table_key_url tku
WHERE tk.id_key = tku.id_key
AND (
tk.keyword LIKE '%key1%'
OR tk.keyword LIKE '%key2%'
OR tk.keyword LIKE '%key3%'
)
GROUP BY tku.id_link order by NOTE DESC limit 0, 10
cette requête s'éxécute dans un temp fou (30s) je n'ai pas oublié les index
PS : tku.note decimal(21,15)
Partager