![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ponieważ zaciekawiło mnie to co napisał Dragossani w <b>tym</b>wątku, postudiowałem manual do MySQLa i oto co z tego wynikło - wyszukiwarkę z określaniem trafności można zrobić jednym zapytaniem :-)
<i><b>Jak zrobić wyszukiwarkę?</b></i> Zacznijmy od początku: zakładamy, że chcemy zrobić własną wyszukiwarkę do forum phpBB. Na początku dodajemy do istniejącej tabeli prefix_posts_text jedno pole:
Jeżeli wszystko przebiegło pomyslne to możemy zająć się stworzeniem zapytania formularza wyszukiwania. Do wyszukiwania używamy funkcji mysqla
która zwraca wyniki trafności wyszukiwania. Teraz zróbmy z tego zapytanie:
zakładając, że w zmiennej $_POST["f"] mamy szukane wyrażenie. Jeżeli zapytanie działa, to jedziemy dalej, jeżeli nie to szukamy rozwiązania w manualu. Teraz przypisujemy odpowiednie wartości do tablic:
Teraz przygotujmy wyświetlanie wyników. Ponieważ zwracane wyniki trafności nie są za każdym razem identyczne, wyszukujemy najwiekszą wartość:
Teraz (w pętli) z proporcji obliczamy procenty trafności każdego zapytania, i wyświetlamy dane:
I wyszukiwarka gotowa :-) :arrow: <b>Przykład</b> Powyżej można zobaczyć przykład działania wyszukiwarki podpiętej pod phpBB. <i><b>Metoda działania wyszukiwarki.</b></i> (na podstawie moich obserwacji) Trafność zostaje wyliczona w następujący sposób - jest liczona ilosc szukanych słów i podstawiona do ilości ogólnej wyrazów w ciągu i na podstawie tego zostaje zwrócona wartość. Czyli mówiąc prościej - na górze strony wyszukiwania (największa trafność) będą posty z najwyższym stosunkiem wyrazów do szukanego ciągu, czyli np. najkrótsze posty z największą ilością szukanych słów. Ograniczeniem jest długość ciągu - wyszukiwarka działa dopiero przy szukanych wyrażeniach dłuższych niż 3 znaki. -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 13:37 |