|
|
Wymagania
ZaczynamyPo pierwsze, musisz uzyskać kopię kodu Nutch. Możesz ściągnąć oficjalną wersję z http://www.nutch.org/release/. Rozpakuj archiwum i przejdź do głównego katalogu dystrybucji. Możesz również wziąć kod źródłowy z CVS i skompilować wersję binarną przy użyciu Ant. Następnie wykonaj następujące polecenie: bin/nutchWyświetli ono dokumentację skryptu poleceń Nutch. Teraz jesteśmy gotowi do pobierania stron ("crawling"). Istnieją dwa warianty pobierania:
Pobieranie z intranetuTen sposób pobierania jest właściwszy wtedy, gdy planujemy pobrać nie więcej niż około 1 miliona stron pochodzących z kilku serwerów. Intranet: KonfiguracjaW celu poprawnej konfiguracji dla pobierania z intranetu musisz:
Intranet: Uruchomienie pobieraniaPo dokonaniu konfiguracji uruchomienie pobierania jest łatwe. Po prostu użyj polecenia "crawl". Można podać następujące opcje:
bin/nutch crawl urls -dir crawl.test -depth 3 >& crawl.logZazwyczaj uruchamia się pobieranie najpierw na próbę, z małymi wartościami parametru "depth", żeby sprawdzić czy pobierane są właściwe strony. Kiedy już upewnimy się, że konfiguracja jest prawidłowa, to stosowna wielkość tego parametru dla pełnego pobierania wynosi około 10. Kiedy pobieranie zostanie już zakończone, przejdź do części "Wyszukiwanie" znajdującej się dalej. Pobieranie z całej sieci InternetPobieranie z całej sieci zostało zaprojektowane tak, aby móc obsłużyć duże ilości pobieranych stron, gdzie proces pobierania może trwać tygodniami i działać na wielu maszynach jednocześnie.Internet: Główne pojęciaNutch przechowuje dane dwóch rodzajów:
mkdir db mkdir segments Internet Inicjalizacja Bazy Stron WWWDo utworzenia nowej, pustej bazy, stosujemy narzędzie administracyjne:bin/nutch admin db -createNarzędzie Injector dodaje adresy stron do bazy danych. Dodajmy adresy pochodzące z katalogu DMOZ - Open Directory. Najpierw musimy ściągnąć i rozpakować plik zawierający listę wszystkich stron skatalogowanych w DMOZ. (Plik ten ma ponad 200MB, więc zajmie to parę minut.) wget http://rdf.dmoz.org/rdf/content.rdf.u8.gz gunzip content.rdf.u8.gzNastępnie dodamy losowo wybrany podzbiór tych stron to naszej bazy. (Używamy losowej próbki, żeby wszyscy ci co postępują według tego podręcznika nie obciążali tych samych serwerów.) Katalog DMOZ zawiera około 3 milionów adresów. Dodamy jeden na 3000, więc w rezultacie otrzymamy około 1000 adresów: bin/nutch inject db -dmozfile content.rdf.u8 -subset 3000Ten krok również zabiera kilka minut, ponieważ cały plik musi zostać przetworzony. W rezultacie otrzymamy bazę stron WWW zawierającą około 1000 adresów jeszcze nie pobranych stron. Internet: PobieranieW celu ropozczęcia pobierania najpierw musimy na podstawie bazy stron utworzyć listę adresów do pobrania (tzw. "fetchlist"):bin/nutch generate db segmentsTo polecenie tworzy listę stron do pobrania. Lista ta zostaje umieszczona w nowo utworzonym katalogu segmentów. Katalog ten otrzymuje nazwę reprezentującą czas utworzenia listy. Zachowamy nazwę tego katalogu w zmiennej środowiskowej: >s1: s1=`ls -d segments/2* | tail -1` echo $s1Teraz możemy uruchomić proces pobierania tego segmentu przy pomocy polecenia: bin/nutch fetch $s1Kiedy ten proces się zakończy, uaktualniamy bazę stron na podstawie rezultatów pobierania: bin/nutch updatedb db $s1W tym momencie w bazie danych znajdą się dane na temat wszystkich stron połączonych odnośnikami do stron pochodzących z początkowego zestawu. Następnie uruchamiamy pięciokrotną analizę bazy w celu ustalenia priorytetów stron, które powinny być pobrane w następnej kolejności: bin/nutch analyze db 5Następnie tworzymy nowy segment z listą 1000 stron do pobrania, które uzyskały najwyższy priorytet: bin/nutch generate db segments -topN 1000 s2=`ls -d segments/2* | tail -1` echo $s2 bin/nutch fetch $s2 bin/nutch updatedb db $s2 bin/nutch analyze db 2Pobierzmy w ten sam sposób jeszcze raz następne 1000 stron: bin/nutch generate db segments -topN 1000 s3=`ls -d segments/2* | tail -1` echo $s3 bin/nutch fetch $s3 bin/nutch updatedb db $s3 bin/nutch analyze db 2Do tego momemntu pobraliśmy już parę tysięcy stron. Utwórzmy więc ich indeks. Internet: IndeksowanieW celu utworzenia indeksu index dla każdego segmentu, stosujemy następujące polecenie:bin/nutch index $s1 bin/nutch index $s2 bin/nutch index $s3Następnie, zanim zaczniemy używać indeksów do wyszukiwania, musimy usunąć z niego duplikaty stron. Robimy to tak: bin/nutch dedup segments dedup.tmpTeraz jesteśmy gotowi do wyszukiwania! WyszukiwanieZanim będziesz mógł wyszukiwać, musisz umieścić archiwum WAR w odpowiednim katalogu twojego serwera servlet-ów. (Jeśli używałeś kodu z CVS, to najpierw musisz skompilować plik WAR poleceniem ant war.) Zakładając, że zainstalowałeś serwer Tomcat jako ~/local/tomcat, to plik WAR można zainstalować poleceniami:rm -rf ~/local/tomcat/webapps/ROOT* cp nutch*.war ~/local/tomcat/webapps/ROOT.war (UWAGA: Aplikacja Nutch w chwili obecnej wymaga instalacji w kontekście ROOT). Aplikacja standardowo korzysta z indeksów z podkatalogu ./segments, względem katalogu z którego startujemy serwer Tomcat. Jeśli pobierałeś strony z intranetu poleceniem "crawl" zmień aktualny katalog na ten, gdzie jest wynik pobierania, w przeciwnym przypadku nie zmieniając aktualnego katalogu wydaj następujące polecenie:~/local/tomcat/bin/catalina.sh startNastępnie odwiedź stronę http://localhost:8080/. Miłej zabawy! |
Except where otherwise noted, this site is licensed under a Creative Commons License. ca | de | en | es | fi | fr | hu | jp | ms | nl | pl | pt | sv | th | zh |
||