Petit tri de pertinence pour moteur de recherche

Petit nouveau ! | 2 Messages

12 déc. 2006, 05:39

Bonjour,

J'ai un moteur de recherche sur mon site, actuellement la recherche correspond à un select * from table where column like '%string%' en mysql.
Pour que le moteur de recherche soit plus pertinent j'ai besoin qu'en priorité s'affichent les mots qui commencent par string, càd "where column like 'string%'.

Je peux faire ca en 2 requetes:
- select * from table where column like 'string%'
- select * from table where column like '%string%' and not like 'string%'


et stocker le résultat dans un tableau mais j'aimerais savoir si vous savez le faire en une seule requete, ca serait plus élégant mais je n'y arrive pas

Merci 8)

Mammouth du PHP | 19672 Messages

12 déc. 2006, 08:48

Comme pour le même champ tu utilises successivement deux comparaisons différentes, je crains fort que ce soit impossible en une seule requête pour l'avoir dans cet ordre "Commençant par string puis Contenant string"

Ce qui s'en rapprocherait par contre pour ce qui est de la pertinence serait une recherche en FULL TEXT, mais même là, tu n'auras pas nécessairement cet ordre précis.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: