Ordonare cautare dupa relevanta

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
trif
Mesaje: 500

Ordonare cautare dupa relevanta

Salut,
Am o problema cu cautarea si nu stiu cum sa o rezolv.
In primul rand vreau sa dau un exemplu:
Am o lista de denumiri care contin cuvinte asemanatoare:
//#########
rezultatele cautarii:
--> 1989 ana Maride
--> aniversarea deviatiei
--> anul 2014 departarii
--> an de an ma duc la piata
--> vasilican Devian
//#########
le-am bolduit ca sa se vada mai bine.
Problema este urmatoarea
eu caut an de an si imi apare lista de mai sus si este bine ca apare ca asa si trebuie dar problema este ca nu imi apare prima ca si rezultat ceea ce am scris eu adica an de an.
Le-am ordonat si reordonat dar tot nu reusesc sa fac sa imi apara prima data ceea ce este in bara de cautare si apoi ce se gaseste in plus.

Sper ca m-am facut inteles.

Astept raspuns.
Multumesc anticipat.
Cu stima Trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje: 4343
Salut
Crearea unui sistem de cautare in baza de date cu rezultate ordonate dupa relevanta e oarecum dificil.
Daca versiunea MySQL e cel putin 5.6, e mai usor, poti sa folosesti instructiuni MATCH ... AGAINST.
Dar daca e mai veche, se face instructiunea SQL cu formule CASE care dau un scor ce se foloseste la ordonare.
Poti sa gasesti pe internet intrebari, raspunsuri si exemple despre asta, la cautare: " mysql search sort by relevance ".

- Eu am facut un script de indexare pagini din site (cu Admin Panel) pentru sistem de cautare cu paginare bazat pe criterii de relevanta; e folosit si pe acest site (nu pe forum).
Pt. Download si Demo, e la adresa: https://coursesweb.net/php-mysql/ssep-si ... hp-ajax_s2 ; poate e de folos.

trif Mesaje: 500
Salut
Am incercat varianta ta cu match ... against dar nu mi-a mers deoarece cauta text nu cuvinte separatate. Am incercat si varianta cu case dar aici merge pentru un cuvant dar daca sunt mai multe nu mai merge.
Ca sa impac si capra si varza pentru inceput am ordonat dupa LENGTH(denumire) ASC si denumire ASC si pentru moment da niste o ordine mai relevanta decat fara.
Asta este o varianta pana mai gasesc o alta idee si sa modific ca sa fie si mai bine. Revin cu ceea ce reusesc sa fac cand o sa fac.

Multumesc pentru ajutor.

Cu stima Trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

Subiecte similare