ďťż
Podstrony
|
telcocafeCzy nie wie ktoś jak zrobić wyszukiwarkę podobną do "Google". Nie chodzi mi o plagiat.Chciałbym użyć PHP, CSS i MySQL. Proszę o kod wyszukiwarki i bota wraz z opisaniem wykorzystanych poleceń. Z góry dziękuję. tak, google sprzedaje bota za jakie 30 000$ dolarow licencja na 500 000 podstron. Za 500 000$ jest chyba full wersja... Potem napiszesz skrypt php do interpretacji danych wygenerowanych przez googlebot'a. Za pomoca php nie zrobisz czegos takiego jak googlebot. Jak ty to sobie w ogole wyobrazasz? Użytkownik sokol edytował ten post 27 kwiecień 2007, 20:09 Proszę o kod wyszukiwarki i bota wraz z opisaniem wykorzystanych poleceń. Odsyłam Cię do regulaminu tego działu Użytkownik sauron edytował ten post 27 kwiecień 2007, 20:15 Przepraczam. To moglibyście dać mi linka do tworzenia jakiejś prostej wyszukiwarki np. takiej jak znajduje się w CMS-ie Joomla Tam jest zwykla wyszukiwarka tego co jest w serwisie. Po za tym kod jest rozpowszechniany na zasadach GPL czyli mozesz go sobie obejrzec a nawet pozyczyc! dla MySQL możesz wykorzystać opcję pełnotekstowego wyszukiwania - przykład. Inna opcja to np. xapian, który posiada API dla PHP i jest wydajnym rozwiązaniem. Jeżeli chodzi o pająki indeksujące to musisz podszkolić się z programowania sieciowego, niekoniecznie w PHP - lepszy może być Python (pomoc np. Twisted) lub w przypadku większych projektów C/C++ :) Jednym słowem: musisz być dobrym programistą, a jak nie to musisz programiście zapłacić ładną sumkę za takie dzieło :) zeby efektywnie korzystać z xapiana musisz miec serwer dedykowany! Co troche kosztuje profesjonalna wyszukiwarka nie jest przeznaczona na serwery typu yoyo.pl :P Znalazłem skrypt wyszukiwarki w Ekspercie 2/2005. Oto i on: Plik szukaj.html: <html> <head> </head> <body> <form method="POST" action="szukaj.php">Szukaj <input type="text" name="zapytanie" size="20"> <input type="submit" value="Szukaj" name="s1"> </form> </body> </html> i plik szukaj.php: <? if (isset($_POST["zapytanie"])) $zapytanie=strtolower($_POST["zapytanie"]); else $zapytanie=""; $zakazane_pliki=array("funkcje.php","hasla.php","szukaj.php"); $dozwolone_rozszerzenia=array("htm","html","php"); if ($zapytanie!="") { echo "Wyniki wyszukiwania frazy <b>$zapytanie</b>:<br>"; przeszukuj(".",$zapytanie, $zakazane_pliki,$dozwolone_rozszerzenia); } else echo "Nie wpisales zadnej frazy!"; function przeszukuj($nazwa_folderu,$zapytanie,$zakazane_pliki,$dozwolone_rozszerzenia) { if (!isset($nazwa_folderu)) $nazwa_folderu="."; $folder=opendir($nazwa_folderu); while ($plik=readdir($folder)) { if ((!in_array($plik, $zakazane_pliki)) && in_array(substr($plik,strrpos($plik,".")+1),$dozwolone_rozszerzenia)) { $zawartosc=implode("",file($nazwa_folderu."/".$plik)); $zawartosc2=strip_tags(strtolower($zawartosc)); $pozycja=strpos($zawartosc2, $zapytanie); $start=strpos($zawartosc, "<title>")+7; $stop=strpos($zawartosc, "</title>"); if ($start===false || $stop===false) $tytul="brak tytułu strony"; else $tytul=substr($zawartosc,$start,($stop-$start)); if ($pozycja!==false) { echo "<a href=".$nazwa_folderu."/".$plik.">".$tytul."</a> <br>"; } } if ($plik!="." && $plik!=".." && is_dir($nazwa_folderu."/".$plik)) przeszukuj($nazwa_folderu."/".$plik, $zapytanie, $zakazane_pliki, $dozwolone_rozszerzenia); } closedir($folder); } ?> Czy ktoś pomógłby mi zmienić ten kod tak aby wykorzystywał bazę danych MySQL i nie wyszukiwał plików, tylko stron internetowych zapisanych w bazie. Baza danych zawierała by Tytuł strony, jej opis, adres i słowa kluczowe. Czy jest podobny projekt do xapian tylko na Windowsa. Mam serwer na Krasnalu. ten "kod" z Eksperta sobie odpuść bo to wielka pomyłka a napisanie wyszukiwarki od zera na bazie pełnotekstowego wyszukiwania MySQL jest znacznie prostsze, nie wspominając o wydajności. Jeżeli nie planujesz niczego dużego to MySQL "na krasnalu" powinno starczyć. Jeżeli planujesz znacznie większy projekt to zacznij od dobrego serwera :) dla czego sądzisz że to pomyłka? Ja po drobnych modyfikacjach używam tego kodu i nie narzekam! bo to otwiera wszystkie pliki po kolei i szuka identycznej frazy. Przy większej ilości plików (i większym ich rozmiarze) wymaga to sporo czasu oraz generuje dużo operacji I/O na dysku. A jak chce się robić wyszukiwarkę opartą o bazę danych to lepiej odpuścić sobie bazowanie na kodzie "Eksperta" tylko napisać to porządnie bez naleciałości kodu nie mającego nic wspólnego z wyszukiwarką bazodanową. Użytkownik Riklaunim edytował ten post 28 kwiecień 2007, 17:32 To moglibyście wysłać mi skrypt, który wyszukiwał by stron www w bazie. Proszę o wysłanie na maila. mail: dariusz.mysliwiec [małpa] gmail.com To moglibyście wysłać mi skrypt, który wyszukiwał by stron www w bazie. Proszę o wysłanie na maila. mail: dariusz.mysliwiec [małpa] gmail.com Po pierwsze: Odsyłam Cię do regulaminu tego działu Po drugie: dla MySQL możesz wykorzystać opcję pełnotekstowego wyszukiwania - przykład. Inna opcja to np. xapian, który posiada API dla PHP i jest wydajnym rozwiązaniem. Jeżeli chodzi o pająki indeksujące to musisz podszkolić się z programowania sieciowego, niekoniecznie w PHP - lepszy może być Python (pomoc np. Twisted) lub w przypadku większych projektów C/C++ :) Jednym słowem: musisz być dobrym programistą, a jak nie to musisz programiście zapłacić ładną sumkę za takie dzieło :) Chyba wybiorę wyszukiwanie pełnotekstowe. Chciałbym ten skrypt napisać, ale strona poświęcona tej metodzie jest tak napisana, że nic nie rozumiem. Nie widzę funkcji łączenia się z bazą danych i formularza w którym mógłbym wpisywać szukane słowo. Jak to wyświetla dane? bo przykład wykorzystuje frameworka CI, który zajmuje się m.in. obsługą bazy danych. Z podanego przykładu ważne są jedynie dwa zapytania: ALTER TABLE nazwa_tabeli ADD FULLTEXT(pole1, pole2); gdzie pole,pole2 to nazwy pól, które mają być objęte wyszukiwaniem. Zapytanie należy wykonać raz, np. w phpMyAdmin. By wyszukać wystarczy wykonać zapytanie: "SELECT *, MATCH(pole1, pole2) AGAINST ('".$fraza."') AS score FROM nazwa_tabeli WHERE MATCH(pole1, pole2) AGAINST ('".$fraza."') ORDER BY score DESC" Gdzie pole1 i pole2 to nazwy tych samych pól co podane przy ALTER TABLE. Wykonanie zapytania zwróci wynik tak jak zwykły SELECT. Oprócz pól z tabeli będzie miało wartość "score" oznaczającą stopień dopasowania :) Użytkownik Riklaunim edytował ten post 30 kwiecień 2007, 10:45 close :| i ciesz sie ze bez % |
|||
Sitedesign by AltusUmbrae. |