Algorythme de recherche google-like

Algorythme de recherche google-like - SQL/NoSQL - Programmation

Marsh Posté le 15-03-2011 à 14:24:39    

salut à tous,
 
dans MySQL, j'ai une table formée comme telle :
 
id | texte
-----------
1 | configuration BAL
2 | BAL
3 | blabla
 
je voudrais faire un SELECT texte FROM table WHERE texte LIKE '%configuration%' OR texte LIKE '%BAL%' de sorte qu'il me sorte en premier les enregistrements contenant le plus de mots en commun avec ceux passés dans la requete :
 
je voudrais obtenir  
 
1 | configuration BAL
2 | BAL
 
Avez-vous une idée ?


Message édité par sebnutt le 15-03-2011 à 14:24:51
Reply

Marsh Posté le 15-03-2011 à 14:24:39   

Reply

Marsh Posté le 15-03-2011 à 15:01:38    

Il y a moyen, mais c'est compliqué, lent et ca ne scale pas du tout.
En gros tu dois simuler un full text index en découpant ton champ texte en mots et compter le nombre de fois que tu as un resultat.
 
Il y aussi d'autres moyen mais c'est encore pire :)
 
Donc soit tu abandonnes l'idée ou tu regardes du coté des full text index si ca peut te convenir.

Reply

Marsh Posté le 16-03-2011 à 09:51:03    

je vais voir coté fulltext.
sinon, vu que c'est de l'intranet, si tu as une soluce meme gourmande, je suis preneur

Reply

Marsh Posté le 16-03-2011 à 11:19:22    

Regardes les moteurs de recherche GPL type Lucene... Pas la peine de réinventer la roue. :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed