Bonjour à tous !
Je voulais savoir, par rapport aux recherches via un formulaire de recherche.
Est-il mieux de créer dans l'administration de son site un champs "mot clé" pour chaque article, dans lequel on y entre les mots clés correspondant ou pas ?
Et ensuite pour faire la recherche, si il est mieux de faire la recherche sur les mots clés, et/ou le titre, et/ou le contenu de l'article ?
Et de quelle manière je peux optimiser sa au mieux, pour par exemple rendre les résultats trouvé dans les titres prioritaires à ceux du contenu ou quelque chose dans ce genre ?
Merci d'avance =)
Pour les mots clef une table de liaison est idéal avec une version "séparé par des virgules" stocké dans la table en question
Exemple de pertinence :
SELECT
(3+(MATCH (Tutoriel.name) AGAINST ('$kw')))*
(1+(MATCH (Tutoriel.content) AGAINST ('$kw')))*
(4+(MATCH (Category.name) AGAINST ('$kw'))) AS pertinence,
Tutoriel.id
FROM
tutoriels as Tutoriel,
categories as Category
WHERE
(MATCH (Tutoriel.name) AGAINST ('$kw' IN BOOLEAN MODE)
OR MATCH (Tutoriel.content) AGAINST ('$kw' IN BOOLEAN MODE)
OR MATCH (Category.name) AGAINST ('$kw' IN BOOLEAN MODE)
) AND
Category.id = Tutoriel.category_id AND
Tutoriel.online>0
GROUP BY
Tutoriel.id
ORDER BY
pertinence DESC
En fait en utilisant le match Against tu va pouvoir rechercher sur plusieurs champs. Le système de mot clef peut te permettre de donner une priorité si tu trouve un mot clef correspondant à la recherche
Merci beaucoup =)
Est-il mieux de faire un table dans laquelle j'enregistre mes mots clés, puis liés chaque mots clé au bon article,
ou de rajouter une champs mot clé dans ma table de posts ?
Si je fais un requête de ce genre :
SELECT * FROM posts WHERE (MATCH (MotCléDuPost, Titre) AGAINST ('MotClé1') OR MATCH (MotCléDuPost, Titre) AGAINST ('MotClé2')) > 0 OR (MATCH (content) AGAINST ('MotClé1') OR MATCH (content) AGAINST ('MotClé2')) >= 10
Je rends donc le fait d'avoir un mot clé recherché, dans ma liste de mots clés aussi important que s'il est dans le titre; pour le contenu il faut qu'il y soit au moins 10 fois pour que l'article soit ajouter au résultat si le mot clé recherché n'est pas dans le titre ni dans la liste de mots clé.
Ensuite je voudrais trier ça par nombre de correspondance, mais euh... comment ? =)
En enregistrant le résultat de chaque MATCH et en ordonnant par celui ci ?