Rozdział 49.
Konfiguracja węzła WAIS
Tim Parker
W tym rozdziale:
Kompilowanie i instalacja programu freeWAIS
Konfigurowanie programu freeWAIS
Uruchamianie serwera freeWAIS
Tworzenie własnych indeksów dla programu WAIS
WAIS (ang. Wide Area Information Service) to narzędzie obsługiwane za pośrednictwem systemu menu, pozwalające na wyszukiwanie słów kluczowych w bazach danych o dokumentach dostępnych w systemie. Program WAIS został opracowany w firmie Thinking Machines, ale jak tylko zdobył popularność, zajęła się nim specjalnie w tym celu założona firma WAIS Incorporated. Jego darmowa wersja, znana pod nazwą freeWAIS została udostępniona instytucji Clearinghouse for Networking Information Discovery and Retrieval (CNDIR) - i jest to wersja najczęściej spotykana w systemach linuxowych.
WAIS pozwala na wyszukiwanie wprowadzonych przez użytkownika słów kluczowych czy nawet zdań w bazach danych. Typowy wygląd okienka tego programu przedstawia rysunek 49.1 (wyniki wyszukiwania pochodzą z pierwotnego serwera WAIS, dostępnego pod adresem http://www.wais.com; można tam również znaleźć wiele przykładów demonstrujących możliwości tego programu). W przykładzie przedstawionym na rysunku próbowaliśmy znaleźć słowa kluczowe „hubble” (amerykański astronom, jego imieniem nazwano jeden z największych teleskopów; wielkość liter w programie WAIS nie ma zwykle znaczenia) i „magnitude” (jasność gwiazdowa). Po przeszukaniu wszystkich dostępnych indeksów baz danych, WAIS przedstawia wyniki poszukiwań - odpowiednie okienko przedstawione jest na rysunku 49.2.
Rysunek 49.1. W programie WAIS można użyć prostych i bardziej złożonych kryteriów wyszukiwania |
|
Rysunek 49.2.
WAIS wyświetla znalezione dokumenty |
|
Dane generowane przez program WAIS, wyświetlane w przeglądarce WAIS (jak na rysunkach) lub przeglądarce WWW, zawierają listę wszystkich dokumentów spełniających kryteria wyszukiwania, wraz z punktacją od 0 do 1000, pozwalającą użytkownikowi ocenić, jak dobrze każdy z dokumentów spełnia zadane kryteria (im lepiej, tym więcej punktów).
Rysunek 49.3. Wybranie dowolnego ze znalezionych dokumentów pozwala obejrzeć jego zawartość |
|
Po zakończeniu wyszukiwania można zdefiniować nowe kryteria lub przejrzeć znalezione dokumenty. Na rysunku 49.3 przedstawione jest okno przeglądarki WWW zawierające jeden ze znalezionych dokumentów. WAIS potrafi obsłużyć wiele formatów plików, włączając w to dokumenty tekstowe, pliki audio, grafiki w formacie GIF i JPEG, a także pliki binarne.
Najczęściej używaną w systemach linuxowych wersją programu WAIS jest freeWAIS. W tym rozdziale pokażemy, jak można skonfigurować komputer linuxowy jako serwer WAIS. Warto rozważyć umożliwienie korzystania z takiej usługi szczególnie wtedy, gdy chcesz udostępnić innym użytkownikom większą ilość informacji - mogą to być informacje o produktach, o Twoim hobby czy dane praktycznie każdego innego typu, o ile chcesz udostępnić je innym użytkownikom sieci lokalnej lub Internetu.
Pakiet freeWAIS składa się z trzech części: programu indeksującego dokumenty, serwera WAIS oraz programu klienta. Program indeksujący służy do generowania baz danych, zawierających indeksy, składające się ze słów kluczowych i tabeli ich wystąpień w dokumentach. Serwer zapewnia obsługę zapytań użytkownika na podstawie plików z indeksami. Program klienta umożliwia użytkownikowi dostęp do systemu WAIS - jest to zwykle przeglądarka WAIS lub WWW. Przeglądarki WWW mają tę przewagę nad przeglądarkami WAIS, że prócz stron WAIS potrafią również wyświetlać dokumenty HTML.
Następcą programu WAIS jest program ZDIST (kompatybilny ze swym poprzednikiem). Zachowuje się on bardzo podobnie do programu WAIS; wszystkie zmiany są opisane w dokumentacji. ZDIST ma kilka nowych cech, jest również nieco mniejszy i szybszy niż freeWAIS. Ponieważ jest jednak wciąż w fazie testów, skoncentrujemy się na programie freeWAIS.
Kompilowanie i instalacja programu freeWAIS
Program freeWAIS jest często dołączany do pełnych dystrybucji Linuxa, ale jest również dostępny w wielu węzłach FTP i BBS. Można go także załadować łącząc się z adresem http://ls6-www.informatik.uni-dortmund.de/ir/projects/freeWAIS-sf/index.html. W węźle tym dostępne są zarówno pliki wykonywalne przeznaczone dla różnych komputerów, jak i kod źródłowy, który może być dostosowany do potrzeb wielu systemów.
Jednym z plików wchodzących w skład dystrybucji tego programu jest plik Makefile, ułatwiający kompilację programu, który powinien znaleźć się w katalogu docelowym. Jeśli kompilujesz kod źródłowy samodzielnie, powinieneś upewnić się, że wszystkie zmienne definiowane w pliku Makefile mają poprawne wartości. W większości przypadków wskazują one na standardowe programy użytkowe - wtedy nie trzeba ich modyfikować. Poniżej przedstawiamy kilka zmiennych, których modyfikacja może okazać się niezbędna:
CC nazwa dostępnego w systemie kompilatora C (zwykle cc lub gcc);
CURSELIB wartość odpowiadająca wersji biblioteki curses używanej w systemie;
TOP pełna ścieżka dostępu do katalogu zawierającego kod źródłowy programu WAIS.
Znaczniki wyszczególnione w zmiennej CFLAGS pozwalają na określenie zachowania kompilatora. Dostępnych jest wiele znaczników - większość z nich jest opisana w dokumentacji rozprowadzanej wraz z kodem źródłowym. W większości systemów linuxowych wystarcza pozostawienie wartości domyślnych. Warto jednak wspomnieć o znaczeniu kilku z nich, ponieważ możesz chcieć zmienić ich wartość. Najistotniejsze są znaczniki dotyczące programu indeksującego - w praktyce przydatne mogą być dwa z nich:
-DBIO pozwala indeksować symbole i terminy biologiczne - znacznik ten powinien być używany tylko wtedy, gdy w Twoim węźle udostępniane są materiały z dziedziny biologii;
-DBOOLEANS pozwala używać operatorów logicznych AND (iloczyn) i NOT (negacja), dzięki czemu możliwe jest bardziej precyzyjne określanie kryteriów wyszukiwania.
Znacznik -DBOOLEANS umożliwia używanie operatorów logicznych przy podawaniu kryteriów wyszukiwania. Jeśli na przykład szukasz słów kluczowych „zielony las”, WAIS domyślnie będzie szukał każdego ze słów oddzielnie, niezależnie również przyznając punkty. Jeżeli przy kompilacji aktywny będzie znacznik -DBOOLEANS, będzie można poszukać dokumentów, w których oba słowa występują jednocześnie, używając operatora AND (iloczyn logiczny).
Oto kilka innych znaczników, które mogą być przydatne do określania zachowania się systemu WAIS jako całości:
-DBIGINDEX powinien być ustawiany tylko wtedy, jeśli w węźle udostępnianych jest dużo (tysiące) dokumentów;
-DLITERAL pozwala na wyszukiwanie całych tekstów, zamiast wyszukiwania wystąpień pojedynczych wyrazów wchodzących w skład tekstu;
-DPARTIALWORD umożliwia używanie gwiazdki jako symbolu wieloznacznego (na przykład auto*);
-DRELEVANCE_FEEDBACK jeśli znacznik ten jest ustawiony na ON, użytkownik może wykorzystać wyniki poprzedniego wyszukiwania jako nowe kryteria wyszukiwania - taka możliwość jest dość przydatna w praktyce.
Zawartość pakietu freeWAIS jest rozrzucona po wielu katalogach; przeznaczenie większości z nich jest oczywiste (w katalogu bin znajdują się pliki wykonywalne, w katalogu man - strony man itd.). Katalogi używane przez program freeWAIS w domyślnej konfiguracji to:
bin pliki wykonywalne;
config.c pliki źródłowe w języku C, służące do konfiguracji;
doc pliki zawierające dokumentację i odpowiedzi na często zadawane pytania;
include pliki nagłówkowe, używane przez kompilator;
lib pliki bibliotek;
man strony man;
Src kod źródłowy programu freeWAIS;
Wais-Sources katalog serwerów internetowych;
Wais-Test przykładowe skrypty programu indeksującego.
Po wprowadzeniu odpowiednich poprawek do pliku konfiguracyjnego można skomplować program freeWAIS, wydając polecenie:
make linux
Domyślnie program make generuje dwa programy klienta: swais i waisq. Jeśli chcesz skompilować wersję przeznaczoną do pracy w systemie X Window o nazwie xwais (przydatną, jeśli chcesz umożliwić dostęp z terminali X lub konsol), usuń z pliku Makefile znacznik komentarza w wierszu, który kończy się tekstem makex.
Konfigurowanie programu freeWAIS
Po prawidłowym skompilowaniu i zainstalowaniu programu freeWAIS można przystąpić do indeksowania zgromadzonych w systemie dokumentów. Zwykle w tym celu tworzony jest nowy katalog, o nazwie wsindex. Często umieszcza się go w katalogu głównym (/wsindex), ale wielu administratorów woli przechowywać go w jakimś innym, wydzielonym miejscu (na przykład /usr/wais/wsindex). Należy wziąć pod uwagę fakt, że jeśli pliki z indeksami będą trudne do zlokalizowania, użytkownicy mogą mieć problemy z ich odszukaniem.
Katalog wais-test, tworzony podczas instalacji programu freeWAIS, zawiera skrypt o nazwie test.waisindex, który umożliwia automatyczne wygenerowanie czterech plików indeksowych. Są one używane do sprawdzenia, czy program freeWAIS działa poprawnie, demonstrują również różne możliwości indeksowania i wyszukiwania. Wspomniane pliki to:
test-BOOL indeks trzech przykładowych dokumentów, używający wyrażeń logicznych i synonimów;
test-COMP indeks demonstrujący obsługę skompresowanych plików źródłowych;
test-Docs indeks plików znajdujących się w katalogu doc, demonstrujący możliwość rekursywnego przeszukiwania katalogów;
test-Multi indeks grafik w formacie GIF z możliwością obsługi wielu dokumentów.
Ostatni z czterech plików indeksowych jest poprawnie obsługiwany tylko w wersji opartej na interfejsie X, ale pozostałe trzy powinny działać poprawnie z każdą wersją przeglądarki.
Po upewnieniu się, że system indeksowania działa poprawnie, i że wszystkie składniki pakietu freeWAIS zostały prawidłowo zainstalowane, należy utworzyć indeks dokumentów dostępnych w systemie. Można to zrobić na dwa sposoby, używając polecenia waisindex z opcją -t i jednym z poniższych słów kluczowych:
one_line indeksowanie każdego wiersza dokumentu, pozwalające na dostarczanie dokładniejszej informacji co do miejsca wystąpienia szukanego słowa;
text indeksowanie całych dokumentów, przez co w przeglądarce pojawia się tylko nazwa dokumentu, w którym występuje szukany wyraz.
Polecenie waisindex pozwala również na podanie nazwy pliku z indeksami, który należy wygenerować (opcja -d, po której następuje nazwa pliku) oraz katalogów lub plików, które mają zostać poindeksowane. Przykładowo, jeśli chcesz utworzyć indeks dla plików znajdujących się w katalogu /usr/sales/sales-lit i zachować go w pliku o nazwie sales, indeksując każdy wiersz dokumentu osobno, powinieneś wydać polecenie:
waisindex -d sales -t one_line /usr/sales/sales_lit
Ponieważ nie jest podana pełna ścieżka dostępu do generowanego pliku indeksu, zostanie on utworzony w katalogu bieżącym.
Po uruchomieniu serwera WAIS (patrz podrozdział „Uruchamianie serwera freeWAIS”), możesz przetestować pliki indeksów wydając polecenie waissearch. Aby na przykład znaleźć w pliku z indeksami tekst „WAIS”, wydaj polecenie:
waissearch -p 210 -d plik_indeksowy WAIS
Opcja -p pozwala na podanie numeru portu TCP (domyślnie 210), natomiast opcja -d służy do poinformowania programu waissearch o położeniu pliku indeksowego. Jeśli przeszukiwanie zakończy się pomyślnie (tzn. zostanie odnaleziony co najmniej jeden plik spełniający zadane kryteria), wyświetlona zostanie informacja o liczbie zwróconych rekordów i punktacji przyznanej każdemu ze znalezionych dokumentów. Jeśli nie otrzymałeś żadnych komunikatów lub otrzymałeś komunikat o błędzie, powinieneś sprawdzić, czy do plików konfiguracyjnych wprowadzone zostały prawidłowe informacje i czy plik indeksowy został wygenerowany poprawnie.
Ostatnim krokiem, wymaganym dla zapewnienia dostępu do pliku indeksowego użytkownikom Internetu, jest wydanie polecenia:
waisindex -export -register nazwy_plikow
gdzie nazwy_plikow to nazwy plików indeksowych. Polecenie to powoduje zarejestrowanie indeksów w katalogu serwerów przechowywanym w systemach cndir.org oraz quake.think.com. Połączenie z tymi serwerami następuje automatycznie po podaniu opcji -register. Powyższe polecenie należy wydać tylko wtedy, gdy wszyscy użytkownicy Internetu mają mieć dostęp do zasobów zgromadzonych w systemie (wkrótce przyjrzymy się poleceniu waisindex nieco bardziej szczegółowo).
Jeśli chcesz, by klienci mogli łączyć się z Twoim systemem freeWAIS za pomocą przeglądarek WWW takich jak Netscape czy Mosaic, musisz również wydać polecenie:
waisindex -d WWW -T HTML -contents -export /usr/resources/*.html
Zamiast /usr/resources/ powinieneś podstawić ścieżkę dostępu do plików HTML zebranych w systemie. Powyższe polecenie pozwala klientom WAIS na wyszukiwanie słów kluczowych również w dokumentach HTML.
Jeśli chcesz, możesz skonfigurować system freeWAIS tak, by dostęp do niego był możliwy tylko z pewnych domen. Odpowiada za to wpis w pliku ir.h, o następującej postaci:
#define SERVSECURITYFILE "SERV_SEC"
Kopię istniejącego pliku SERV_SEC lub plik stworzony własnoręcznie musisz umieścić w tym samym katalogu, w którym znajdują się pliki indeksowe. Jeśli WAIS nie odnajdzie pliku SERV_SEC, pozwoli na dostęp z dowolnej domeny (nazwę tego pliku można zmienić, pod warunkiem, że będzie ona taka sama jak nazwa podana w cudzysłowie w pliku ir.h).
Każdy wpis w pliku SERV_SEC definiuje domenę, z której dostęp ma być możliwy. Wpisy te mają format:
domena [adres IP]
W każdym wierszu musi znajdować się nazwa domenowa komputera, któremu chcesz umożliwić dostęp; opcjonalnie można również podać jego adres IP. Jeśli adres IP i nazwa domenowa nie zgadzają się, nie ma to znaczenia, ponieważ WAIS przyznaje dostęp nawet wtedy, gdy zgadza się tylko nazwa lub tylko adres IP. Oto przykładowa zawartość pliku SERV_SEC:
chatton.com
roy.sailing.org
bighost.bignet.com
Każdy z wymienionych powyżej serwerów ma dostęp do systemu WAIS, natomiast żądania nadchodzące z dowolnych innych systemów nie zostaną obsłużone.
Właścicielem pliku SERV_SEC powinien być użytkownik, który uruchamia program freeWAIS (ze względów bezpieczeństwa nie powinien być to użytkownik root), natomiast prawo jego modyfikacji powinien mieć tylko administrator.
Zmienna DATASECURITYFILE spełnia podobną rolę, jak zmienna SERVSECURITYFILE: pozwala zdefiniować nazwę pliku służącego do kontrolowania dostępu do baz danych. Wiersz definiujący tę zmienną w pliku ir.h ma postać
#define DATASECURITYFILE "DATA_SEC"
W pliku DATA_SEC znajduje się lista wszystkich baz danych wraz z informacją o tym, które systemy mogą mieć do nich dostęp. Również ten plik powinien zostać umieszczony w tym samym katalogu co pliki indeksowe. Wpisy w pliku DATA_SEC mają format:
baza_danych domena [adres_IP]
baza_danych to nazwa bazy danych, do której odnosi się dany wpis, pola domena i adres_IP mają takie samo znaczenie jak w pliku SERV_SEC. Poniżej przedstawiamy przykładową zawartość pliku DATA_SEC:
primary chatton.com
primary bignet.org
primary roy.sailing.org
sailing roy.sailing.org
W powyższym przykładzie trzy systemy otrzymały prawo dostępu do bazy danych przechowywanej w pliku o nazwie primary, ale tylko system roy.sailing.org ma dostęp do bazy danych o nazwie sailing. Jeśli chcesz zezwolić wszystkim systemom (wyszczególnionym w pliku SERV_SEC) na korzystanie z którejś z baz danych, możesz zamiast nazwy domenowej i adresu IP wpisać gwiazdki. Przykładowo, by zezwolić wszystkim mającym dostęp do systemu WAIS na korzystanie z bazy danych primary, natomiast tylko systemowi roy.sailing.org na korzystanie z bazy o nazwie sailing, powinieneś do pliku DATA_SEC wprowadzić dane:
primary * *
sailing roy.sailing.org
Należy zachować ostrożność przy wprowadzaniu informacji do plików SERV_SEC i DATA_SEC, ponieważ pomyłka może spowodować przyznanie dostępu innym niż zamierzone systemom. Przykładowo, jeśli jako adres IP podasz 155.12, wszystkie systemy o adresach zaczynających się od 155.12 (np. 15.121, 155.122 itp.) będą miały dostęp do baz danych WAIS. Aby tego uniknąć, powinieneś podawać adresy IP bezpośrednio.
Uruchamianie serwera freeWAIS
Podobnie jak miało to miejsce w przypadku serwera FTP, program obsługujący system freeWAIS może być uruchamiany z jednego ze skryptów rc przy starcie systemu, ale może również być wywoływany przez program inetd, gdy ktoś będzie próbował skorzystać z usługi WAIS. Jeśli chcesz, by system freeWAIS był uruchamiany z pliku rc, powinieneś wpisać do niego następujące polecenie:
waisserwer -u id_uzytkownika -p 210 -l 10 -d /usr/wais/wais_index
Opcja -u pozwala określić, który z użytkowników ma być właścicielem procesu waisserwer (id_uzytkownika musi być prawidłowym identyfikatorem użytkownika, z odpowiednim wpisem w pliku /etc/passwd). Za pomocą opcji -p można podać numer portu, którego należy używać (zwykle 210), natomiast opcja -d służy do informowania programu waisserwer o położeniu plików indeksowych. Jeśli chcesz rejestrować informacje o przebiegu sesji do pliku, użyj opcji -e z nazwą pliku, do którego będą zapisywane informacje.
Program waisserwer nie powinien być uruchamiany przez użytkownika root - uniemożliwi to wykorzystanie niedociągnięć tego programu przez hakerów. Jeśli właścicielem procesu jest zwykły użytkownik (na przykład wais), w najgorszym przypadku zagrożone będą tylko pliki, których jest on właścicielem.
Port 210 jest standardowo używany w Internecie do komunikacji z systemem WAIS. Inny numer portu można podać wtedy, gdy system konfigurowany jest wyłącznie z myślą o lokalnym dostępie do danych. Jeśli numer używanego portu jest mniejszy od 1023, usługa WAIS musi być uruchamiana i zarządzana przez użytkownika root. W przeciwnym przypadku może być ona obsłużona również przez zwykłego użytkownika. Jeśli chcesz używać portu 210, nie musisz podawać w wierszu poleceń jego numeru, ale nadal należy podać opcję -p.
Aby uruchamianiem programu waisserwer sterował proces inetd, w pliku /etc/services musi znajdować się odpowiedni wpis, na przykład:
z3955 210/tcp #WAIS
210 to numer portu, który jest używany przez system WAIS, natomiast tcp to nazwa wykorzystywanego protokołu. Po zmodyfikowaniu pliku /etc/services należy również poinformować program inetd o tym, że ma uruchamiać program waisserwer po wykryciu żądania przesyłanego do portu 210 (lub innego używanego w Twoim systemie); w tym celu w pliku inetd.conf musi znaleźć się wiersz (odpowiednie opcje są takie same, jak w przypadku wywoływania programu z wiersza poleceń):
z3955 stream tcp nowait root/usr/local/bin/waisserwer/waisserwer.d -u id_uzytkownika -d /usr/wais/wais_index
Zamiast programu waisserwer należy uruchomić program waisserwer.d, który jest przeznaczony do współpracy z programem inetd. Również w tym przypadku można użyć opcji -e do załączenia rejestrowania informacji o przebiegu sesji do pliku.
Tworzenie własnych indeksów dla programu WAIS
Jeśli skonfigurowałeś serwer freeWAIS i wszystko wydaje się działać prawidłowo, przyszła pora na dostarczenie systemowi WAIS jakichś użytecznych danych. Zwykle ich źródłem są dokumenty tekstowe, ale indeksować można pliki dowolnego typu. Najważniejszym krokiem jest utworzenie indeksu za pomocą programu waisindex. Program ten czasem zachowuje się niezgodnie z oczekiwaniami, ale odrobina praktyki i kilka prób pozwolą Ci go opanować.
Program waisindex przegląda dane zawarte we wszystkich plikach, które mają zostać poindeksowane. Na ich podstawie generowanych jest zwykle siedem różnych plików indeksowych (zależnie od zawartości plików i wydanego polecenia). Każdy z tych plików zawiera listę słów występujących w dokumentach. Pliki te są następnie łączone w jedną bazę danych, często nazywaną źródłem (lub źródłem WAIS, ang. WAIS source). Kiedy program klienta WAIS zamawia wyszukiwanie, podany przez użytkownika tekst jest porównywany ze źródłem i wyświetlane są wyniki porównania wraz z analizą dokładności trafień (podawaną w postaci punktacji).
|
Użycie plików indeksowych pozwala na znaczne skrócenie czasu wyszukiwania, ponieważ słowa kluczowe zostały wyszukane wcześniej. Ilość danych zawartych w plikach indeksowych może być jednak dość duża, dlatego powinieneś zapewnić serwerowi WAIS odpowiednio dużo miejsca na dysku (zwykle wystarcza dwa razy tyle, ile zajmuje samo źródło). |
Pliki indeksowe programu WAIS
Pliki indeksowe programu WAIS nie nadają się (może poza dwoma wyjątkami) do bezpośredniego przeglądania przez użytkownika. Zwykle program waisindex generuje siedem takich plików, choć ich liczba może być inna w zależności od wymagań. Każdy z plików indeksowych ma nazwę składającą się z dwóch członów: pierwszy z nich jest wspólny (można go podać w wierszu poleceń przy wywoływaniu programu waisindex; jeśli nie zostanie podany, domyślnie przyjmowana jest nazwa index), drugim jest rozszerzenie nazwy pliku, wskazujące na jego zastosowanie. Poniżej przedstawiamy domyślne nazwy plików indeksowych i ich zastosowanie.
index.doc Dokument zawierający tabelę, na którą składają się: nazwa pliku, nagłówek (tytuł) pliku, pozycje pierwszych i ostatnich znaków wpisu, długość dokumentu, liczba wierszy dokumentu, oraz data i czas jego utworzenia.
index.dct Plik zawierający słownik, czyli listę wszystkich słów (bez powtórzeń) w indeksowanych plikach, wraz z odniesieniami do odpowiednich danych w pliku index.inv.
index.fn Plik, który zawiera tabelę z nazwami plików, datami utworzenia indeksów, oraz danymi o typach plików.
index.hl Plik zawierający tabelę nagłówków (tytułów) indeksowanych dokumentów. Nagłówki te są wyświetlane wraz z wynikami wyszukiwania.
index.inv Plik zawierający tabelę wiążącą każde słowo we wszystkich dokumentach z wskaźnikami do tych dokumentów i wagą danego słowa (określoną przez jego odległość od początku pliku, liczbę wystąpień i procentową częstość występowania).
index.src Plik opisu źródła, który zawiera informacje o indeksowanych dokumentach, takie jak nazwa serwera, jego numer IP, numer portu używanego przez WAIS, nazwa pliku źródła, informacja o ewentualnym koszcie usługi, nagłówek, opis pliku źródła oraz adres e-mailowy administratora. Plik ten można edytować za pomocą dowolnego edytora tekstów. Wkrótce omówimy go nieco bardziej szczegółowo.
index.status Plik statusu, zawierający informacje definiowane przez użytkownika.
Plik opisu źródła (który jest zwykłym plikiem ASCII) jest co pewien czas odczytywany przez program waisindex, który sprawdza w ten sposób, czy źródło zostało zmodyfikowane. Jeśli zmiany są znaczące, waisindex aktualizuje przechowywane wewnętrznie informacje. Oto przykładowy plik opisu źródła:
(:source
:version 2
:ip-address "147.120.0.10"
:ip-name "wizard.tpci.com"
:tcp-port 210
:database-name "Linux stuff"
:cost 0.00
:cost-unit free
:maintainer "wais_help@tpci.com"
:subjects "Everything you need to know about Linux"
:description "If you need to know something about Linux, it's here."
Zawartość tego pliku należy zmodyfikować podczas konfigurowania systemu freeWAIS, ponieważ dane domyślne nie są użyteczne.
Polecenie waisindex
Polecenie waisindex umożliwia podanie wielu różnych opcji - kilka z nich omówiliśmy we wcześniejszej części tego rozdziału. Oto lista najważniejszych opcji tego programu:
-a umożliwia dołączenie nowych danych do istniejącego pliku indeksowego (opcja używana do uaktualniania indeksów zamiast ich ponownego tworzenia za każdym razem, gdy udostępniany jest nowy dokument);
-contents powoduje indeksowanie zawartości pliku (zachowanie domyślne);
-d pozwala określić pierwszy człon nazwy plików indeksowych (na przykład podanie parametrów -d /usr/wais/nic spowoduje, że wszystkie pliki indeksowe znajdą się w katalogu /usr/wais, a ich nazwy będą się zaczynać od słowa nic);
-e pozwala podać nazwę pliku, w którym rejestrowane będą informacje o błędach (domyślnie jest to stderr - czyli standardowe urządzenie rejestrujące komunikaty o błędach, zwykle konsola; można również podać opcję -s, powodującą wysyłanie komunikatów do urządzenia /dev/null);
-export powoduje dołączenie do pliku opisu nazwy serwera i numeru portu TCP, co ułatwia dostęp poprzez Internet;
-l pozwala określić, jakie informacje mają być rejestrowane; dostępne wartości to:
0 nie są rejestrowane żadne informacje,
1 rejestrowanie najważniejszych ostrzeżeń i informacji o błędach,
5 rejestrowanie mniej istotnych błędów i ostrzeżeń oraz nazw plików indeksowych,
10 rejestrowanie wszystkich informacji;
-M umożliwia dołączanie plików różnych typów;
-mem ogranicza zużycie pamięci podczas indeksowania (im wyższa liczba zostanie podana, tym szybszy będzie proces indeksowania, ale potrzebował będzie również więcej pamięci);
-nocontents zapobiega indeksowaniu zawartości dokumentu (indeksowana jest wtedy tylko jego nazwa i nagłówek);
-nopairs powoduje, że sąsiednie wyrazy napisane wielkimi literami nie są indeksowane wspólnie;
-nopos powoduje ignorowanie pozycji słowa kluczowego w dokumencie przy obliczaniu punktacji;
-pairs powoduje, że sąsiednie wyrazy napisane wielkimi literami będą indeksowane jako jedna całość;
-pos powoduje obliczanie punktacji na podstawie położenia słów kluczowych (jeśli słowa położone są blisko, punktacja jest większa);
-r rekursywne indeksowanie dokumentów w podkatalogach;
-register rejestracja indeksu WAIS w internetowej bazie WAIS Directory of Services;
-stdin powoduje użycie nazwy pliku wprowadzonej z klawiatury, zamiast z wiersza poleceń;
-stop pozwala na podanie nazwy pliku zawierającego słowa zbyt popularne, by je indeksować, zwykle zdefiniowanej w pliku /src/ir/ stoplist.c;
-t znacznik typu danych w plikach;
-T ustawienie żądanego typu danych.
Jeśli program waisindex nie otrzyma informacji o typie danych zapisanych w plikach, może nie być w stanie wygenerować poprawnego indeksu. Listę obsługiwanych przez freeWAIS typów plików możesz zobaczyć wpisując polecenie waisindex bez argumentów:
waisindex
Zwykle używa się tylko kilku spośród tych typów. Poniżej przedstawiamy listę najpopularniejszych z nich.
filename To samo, co zwykły plik tekstowy (text), ale jako nagłówek używana jest nazwa pliku.
first_line To samo, co zwykły plik tekstowy (text), ale jako nagłówek używany jest pierwszy wiersz pliku.
ftp Pliki zawierające kody FTP, które mogą zostać wykorzystane przez użytkowników do ładowania informacji z innych komputerów.
GIF Grafika w formacie GIF (jeden obrazek odpowiada jednemu plikowi). Jako nagłówek używana jest nazwa pliku.
mail lub rmail Indeksowanie zawartości skrzynki pocztowej mbox - jedna wiadomość odpowiada jednemu dokumentowi.
mail_digest Standardowa poczta elektroniczna - indeksowanie poszczególnych wiadomości. Jako nagłówek używane jest pole tematu (ang. subject).
netnews Artykuły pochodzące z grup dyskusyjnych, indeksowane pojedynczo. Jako nagłówek używane jest pole tematu.
one_line Indywidualne indeksowanie każdego zdania w dokumencie.
PICT Grafika w formacie PICT (jeden obrazek odpowiada jednemu plikowi). Jako nagłówek używana jest nazwa pliku.
ps Plik postscriptowy (jeden dokument odpowiada jednemu plikowi).
text Indeksowanie pliku jako jednego dokumentu. Jako nagłówek używana jest ścieżka dostępu do pliku.
TIFF Grafika w formacie TIFF (jeden obrazek odpowiada jednemu plikowi). Jako nagłówek używana jest nazwa pliku.
Aby poinformować program waisindex o tym, jakiego typu pliki ma indeksować, należy podać opcję -t, po której następuje nazwa odpowiedniego typu plików. Przykładowo, jeśli indeksujesz standardowe pliki ASCII, możesz wydać polecenie:
waisindex -t text -r /usr/waisdata/*
Polecenie to spowoduje utworzenie indeksu dla wszystkich plików w katalogu /usr/waisdata i jego podkatalogach (opcja -r), przy założeniu, że są one plikami ASCII.
|
Po zakończeniu procesu indeksowania wszelkie zmiany w dokumencie nie są uwzględniane w indeksie aż do ponownego przeprowadzenia pełnego indeksowania. Użycie opcji -a nie uaktualnia istniejących w indeksie danych. Zamiast tego powinieneś więc przeprowadzić proces indeksowania od nowa - warto robić to regularnie. |
Inne możliwości systemu WAIS
Usługa freeWAIS udostępniana w systemie może zostać wzbogacona na wiele sposobów. W tym podrozdziale - który na pewno nie wyczerpuje tematu - przedstawimy dwa proste w implementacji sposoby uatrakcyjnienia węzła WAIS.
Na początek załóżmy, że udostępniasz animacje, grafiki czy pliki dźwiękowe na jakiś określony temat - na przykład materiały o instrumentach muzycznych - i posiadasz kilka dokumentów o skrzypcach. Możesz wówczas chcieć udostępnić próbkę dźwięku skrzypiec, animację na ich temat czy zdjęcie skrzypiec Stradivariusa. W tym celu wszystkie pliki zawierające te dane powinny mieć nazwy o wspólnym rdzeniu, różniące się tylko rozszerzeniem. Przykładowo, jeśli główny dokument o skrzypcach nazywa się skrzypce.txt, w katalogach WAIS mogą znajdować się następujące pliki:
skrzypce.TEXT dokument opisujący skrzypce,
skrzypce.TIFF zdjęcie skrzypiec Stradivariusa,
skrzypce.MPEG animacja przedstawiająca proces budowania skrzypiec,
skrzypce.MIDI plik MIDI zawierający jakiś słynny utwór na skrzypce.
Wszystkie powyższe pliki powinny mieć taki sam rdzeń nazwy (skrzypce), ale różnić się typem (rozpoznawanym przez program waisindex). Następnie należy powiązać pliki multimedialne z dokumentem tekstowym. Można to zrobić wydając polecenie:
waisindex -d skrzypce -M TEXT,TIFF,MPEG,MIDI -export
* /usr/waisdata/skrzypce/*
Spowoduje ono, że program waisindex obsłuży wszystkie cztery typy plików. Użytkownik szukający słowa kluczowego „skrzypce” otrzyma informację o wszystkich czterech plikach, a przeglądarka pozwoli mu obejrzeć czy odsłuchać odpowiednie pliki.
Innym często spotykanym rozwiązaniem jest umożliwienie odnalezienia danego dokumentu po podaniu kilku różnych słów kluczowych - mogą to być synonimy, na przykład znalezienie dokumentu o oferowanych przez firmę przewodach połączeniowych powinno być możliwe zarówno po podaniu słowa „kable” jak i „przewody”. Do tego celu przeznaczony jest plik o nazwie SOURCE.syn, odczytywany automatycznie podczas pracy programu wyszukującego dane. Wiersze tego pliku mają format:
słowo synonim [synonim …]
słowo to ciąg znaków, który będzie użyty do wyszukania informacji w bazie danych, natomiast synonim to inny ciąg znaków, po podaniu którego użytkownik powinien otrzymać takie same rezultaty. Przykładowo, jeśli w Twoim węźle WAIS udostępniasz informacje o zwierzętach domowych, zawartość pliku SOURCE.syn może być następująca:
pies wilczur owczarek chart buldog terier
ptak papuga papużka nimfa kanarek
ryba skalar gupik sum pielęgnica glonojad
Plik zawierający synonimy przydaje się, gdy użytkownicy stosują różne określenia mając na myśli ten sam temat. Możesz łatwo sprawdzić, czy jest on potrzebny w Twoim systemie - wystarczy, że na jakiś czas ustawisz poziom rejestracji zdarzeń programu waisindex na 10, a następnie przejrzysz wygenerowany plik - od razu zorientujesz się, jakie wyrażenia są stosowane przez użytkowników korzystających z Twojego węzła, dzięki czemu będziesz mógł dostosować odpowiednio dane zapisane w pliku SOURCE.syn. Rejestracja zdarzeń nie powinna być załączona przez zbyt długi czas, ponieważ pliki zawierające rejestrowane dane szybko stają się bardzo duże.
Podsumowanie
Po uruchomieniu i skonfigurowaniu serwera WAIS, pora na utworzenie własnych indeksów i udostępnienie ich innym użytkownikom. WAIS jest systemem łatwym w konfiguracji, a jednocześnie umożliwia efektywne udostępnianie dokumentów zgromadzonych w systemie. Alternatywą dla systemu WAIS, często używaną w systemach tekstowych, jest usługa Gopher, która zostanie omówiona w następnym rozdziale.
O tym, jak w systemie linuxowym skonfigurować serwer WWW, możesz przeczytać w rozdziale 51. „Konfiguracja węzła internetowego”.
W rozdziale 53. „Podstawy języka HTML” omówimy tworzenie stron WWW.
Jak używać języka Java, aby uatrakcyjnić swoją stronę główną, dowiesz się w rozdziale 54. „Java i JavaScript”.
736 Część VII ♦ Konfiguracja węzła internetowego
736 E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\49.DOC
E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\49.DOC 721
Rozdzia³ 49. ♦ Konfiguracja węzła WAIS 735