pala2222
2.04.2010, 10:24:47
witam.
chciałbym napisać taką wyszukiwarkę, jak są na forach, czyli:
jak napiszę call of duty 2
to odetnie słowa które mają mniej niż 4 znaki zostanie:
call duty
i teraz zadaje zapytanie do mysql aby wyszukała rekordów zawierających słowa call i duty, w jakieś tam podanej tabeli.
z od dzieleniem wyrazów zawierających min 4 litery to sobie poradzę.
mam problem z tym, jak zadać zapytanie aby za jednym razem szukało dwóch wyrazów bo jak napiszę:
%call%duty% to wyszuka mi wszystko co zawiera call i duty jednocześnie.
a jeśli najpierw %call% a potem w kolejnym zapytaniu %duty% to wyrzuci mi mi 2 razy call i potem będę musiał jakoś kombinować aby pousuwać takie same rekordy.
i jeszcze jedno bo chce żeby były wyszukiwane rekordy zawierający wyrazy, bo jak napiszę %duty% to mozę mi wyskoczyć bdfdutyad, to w tym przypadku wystarczy tylko % duty % ?
to ma być wyszukiwarka do takie mojej strony.
o czymś zapomniałem co powinno być w normalnych wyszukiwarkach takich jak np. na forach?
nospor
2.04.2010, 10:27:33
zainteresuj się wyszukiwaniem pełnokontekstowym FULL TEXT SEARCHING
pala2222
2.04.2010, 10:51:24
a byś mógł podać jakiś przykład?
nospor
2.04.2010, 10:59:53
pala2222
25.04.2010, 09:37:42
napisałem taki coś
$zapytanie="SELECT `nazwa` FROM `upload` WHERE MATCH (`nazwa`) AGAINST ('call of duty'WITH QUERY EXPANSION)";
$obAmount=0;
echo "<td>".$wiersz[1]."</td>"; }
i nie działa.
co jest nie tak z tym zapytaniem?
nospor
26.04.2010, 07:27:51
NIe dziala powiadasz....
Zastosuj się proszę do podanych tu porad:
Temat: Jak poprawnie zada pytanie
pala2222
26.04.2010, 09:03:50
Wielkie dzięki
Rada dla innych, jeśli ktoś odeśle was do powyższego tematu to nie obrażajcie się czy co, tylko przeczytajcie, POMOGŁO
jeszcze raz dzięki
EDIT:
A jak zrobić, żeby wyszukiwało od 3 a nie jak standardowo 4 znaków?
oraz, czy jest możliwość sortowania automatycznego według trafności
czyli jak w bazie mam rekord "call of duty" oraz "call"
to przy zapytaniu 'call of duty'
to wyskoczy mi call of duty, a nie jak teraz to co ma najmniej znaków czyli call