Bonjour,
je suis entrain de faire un outil de recherche sur mon site.
Il consiste à indexer chacun des articles et à mettre dans l'index la relation entre le mot clé et les articles qui le contient. Bien sur, le mot clé n'aura pas le même poids sur chacun des article : le poids sera plus important si le mot clé est plus redondant et si il apparait dans le titre.
Cependant je ne sais pas comment enregistrer dans ma DB la correspondance entre les mots clés et les articles.
J'ai pensé à faire un truc du genre :
avec dans list_of_articles la liste des articles avec le poids de chacun dans la grammaire articleId;poid | . Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part tableX : mot_cle (varchar) , list_of_articles (text).
Code : Sélectionner tout - Visualiser dans une fenêtre à part article1;10 | article15;1 | article12;3
Cependant une telle solution me pose problème à plusieurs niveaux :
il faut parser cette liste pour chercher la liste des articles.
lors de l'indexation d'un article (qui a été modifié), il faut supprimer pour chaque mots clés qui n'est plus utilisé dans l'article la correspondance avec l'article et introduire les nouveaux mots clés. Cela est très lourd en terme de requette sql. Car pour chaque mots clés présents dans l'index, il faut faire 2 requetes.
La liste des article peut devenir très grande (imaginons 1000 articles) : les requettes de recherche prendront énormément de temps.
Du coup, je voulais savoir, si il est possible de faire une autre structure de table pour faciliter la recherche et la modification de mon index.
Merci pour votre aide.
Partager