![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 19.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam pytanie. Piszę prostą wyszukiwarkę, która przeszukuje wyniki w bazie danych. Napisałem taki skrypt:
przyjmując, że zmienna $szukam to słowo, którego szukam. Wyświetla ona mniej więcej takie coś: Strona Gry, programy zawiera 1 słów kluczowych Strona Programy i gry zawiera 1 słów kluczowych Strona Darmowe programy i nowe programy zawiera 2 słów kluczowych Problem tkwi w tym, że nie wiem jak mam zrobić, żeby wyniki były posortowane według liczby słów kluczowych od tych z największą ilością do tych z najmniejszą ilością. ![]() -------------------- Windows XP | Telewizja, Radio
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 7 Dołączył: 5.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Wrzuć wynik SQL do tablicy i ją posortuj
Ten post edytował konys 19.01.2006, 23:34:25 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 16.12.2005 Skąd: Warszawa, Kabaty Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Plikownik @ 2006-01-19 21:16:38) Problem tkwi w tym, że nie wiem jak mam zrobić, żeby wyniki były posortowane według liczby słów kluczowych od tych z największą ilością do tych z najmniejszą ilością. ![]() IMHO ilość wystąpień słowa jest mało interesująca. Chyba, że jest to jakaś specjalna wyszukiwarka. Najlepiej zastosuj funkcje wbudowane w bazę danych do ustalania które wyniki powinny być wyświetlane jako pierwsze. Proponuję wzbogacenie wyszukiwarki o następujące mechanizmy: 1) Filtruj zapytania pod kątem dziwnych znaków. 2) Minimum 3 litery, maksimum 5-6 wyrazów (reszta ignorowana). 3) Rozdzielaj słowa w zapytaniu. W obecnej wersji po wpisaniu np. 'marek jurek' wyszukiwarka znajdzie tylko marszałka sejmu, nie pokaże natomiast innych stron z tymi słowami. A chyba nie tego oczekuje użytkownik. 4) Kolejność wyszukiwania: - strony, które zawierają wszystkie słowa koło siebie - strony, które zawierają wszystkie słowa, ale oddalone od siebie - strony, które zawierają część słów kluczowych (im mniej tym gorzej) Słowa, czyli po obu stronach nie ma innych literek i cyferek, tylko spacje, taby, kropki, myślniki, itp. 5) Jeśli pierwsze wyszukiwanie nie przyniosło rezultatów, szukaj części słów, czyli właśnie '%fraza%', potem kombinacje '%słowo_1%' AND '%słowo_2%' [...] a na koniec '%słowo_1%' OR '%słowo_2%' OR [...]. Dzięki temu znajdziesz zakaMAREK, koszMAREK, itp. Moim zdaniem lepiej pokazać, że wyszukiwarka się stara niż wywalić 'znaleziono 0 pasujących stron'. Punkt czwarty i piąty można zrealizować jednym zapytaniem, stosując UNION i zapytania w odpowiedniej kolejności (eliminujące duplikaty). Konstrukcja zapytania może być czasochłonna, dlatego proponuję je cache'ować w zmiennej sesji. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 07:40 |