Eine Suchmaschine für Webserver unter OpenVMS
-
Upload
miranda-calvin -
Category
Documents
-
view
34 -
download
1
description
Transcript of Eine Suchmaschine für Webserver unter OpenVMS
25. DECUS-Symposium 3C05 / 1
Eine Suchmaschine für Webserver unter OpenVMS
Martin Vorländer
25. DECUS-Symposium 3C05 / 218-Apr-2002
ht://Dig?ht://Dig?
indizierende Suchmaschine mit „Digger“ (Crawler, Harvester, Robot)
Einsatzgebiet: einzelne Domänen oder Intranets
entwickelt an der San Diego State University, um die diversen Webserver auf dem Campus durchsuchen zu können
entwickelt unter Unix
geschrieben in C++ und C
lizensiert unter GNU General Public License (GPL) v2
Portierung der Versionen 3.1.5 / 3.1.6 nach OpenVMS Alpha mit Unterstützung und Ideen u.a. von
Patrick Young (University of New South Wales, Sydney)
Richard Barry (Compaq CSWS Project Team)
25. DECUS-Symposium 3C05 / 318-Apr-2002
FeaturesFeatures
Indizierung von HTML und Text
Externe Parser / Konverter konfigurierbar, z.B. zur Indizierung von PDF (z.B. mit pdftotext aus dem XPDF-Paket)
MS-Word (z.B. mit catdoc)
Möglichkeit der Abbildung von URLs auf lokale Pfade
inkrementelle Indizierung
neben exakter Suche auch „fuzzy“-Suchalgorithmen soundex, metaphone, common word endings, synonyms
Templates zur Ausgabe der Suchergebnisse
Datenhaltung mit Berkeley DB
25. DECUS-Symposium 3C05 / 418-Apr-2002
Features (Forts.)Features (Forts.)
Eine Konfigurationsdatei htdig.conf
Drei Phasen Digging
Merging
Searching
Fünf Programme htdig.exe (htdump.exe, htload.exe)
htmerge.exe / htfuzzy.exe / htnotify.exe
htsearch.exe
25. DECUS-Symposium 3C05 / 518-Apr-2002
KonfigurationKonfiguration
Alle Konfigurationsanweisungen sind von der Form
<attribut>:<whitespace><wert><newline>
Zeilenfortsetzung mit \ am Zeilenende
Kommentare beginnen mit #
Generelle Konfigurations-Attribute
database_dir bin_dirconfig_dir common_dir
database_baseword_list word_dbdoc_db doc_index
include
25. DECUS-Symposium 3C05 / 618-Apr-2002
Konfiguration (Forts.)Konfiguration (Forts.)
Jedes Attribut kann als Variable benutzt werden, z.B.
database_base: ${database_dir}/db
Definition von eigenen Attributen (zur Verwendung als Variablen) möglich
Unter OpenVMS ist für Pfadangaben sowohl Unix- als auch VMS-Syntax erlaubt
Einschränkungen: $ in Pfadangaben müssen durch \ escaped werden
Auch wenn oben database_dir in VMS-Syntax gegeben sein sollte:Der / als Trennzeichen muß angegeben werden
external_parsers und pdf_parser müssen gültige VMS-Kommandos enthalten
25. DECUS-Symposium 3C05 / 718-Apr-2002
Phase 1: DiggingPhase 1: Digging
htdig.exe Sammeln von Dokumenten
Verfolgen von Links
Extrahieren von Wörtern
start_url (auch mehrere)
external_parsers / pdf_parser
Steuerung der Extraktion von Wörtern:
localeextra_word_charactersminimum_word_length / maximum_word_lengthvalid_punctuationallow_numbersignore_alt_text
25. DECUS-Symposium 3C05 / 818-Apr-2002
Phase 1: Digging (Forts.)Phase 1: Digging (Forts.)
Gewichtung von Wörtern aus bestimmten Teilen von HTML-Dokumenten:
description_factor (150)keywords_factor (100)title_factor (100)meta_description_factor (50)heading_factor_N (5,4,3,1,1,0) N=1..6text_factor (1)
Steuerung des Sammelns von Dokumenten:
local_urls local_urls_onlylimit_urls_to exclude_urlsmax_hop_count server_max_docsvalid_extensions bad_extensions
25. DECUS-Symposium 3C05 / 918-Apr-2002
Phase 1: Digging (Forts.)Phase 1: Digging (Forts.)
Steuerung des Sammelns von Dokumenten (Forts.): ROBOTS.TXT
<META> HTML-Tag: <META NAME="name" CONTENT="wert">
Erkannt und beachtet werden: robots
htdig-noindex
[htdig-]keywords (-> keywords_meta_tag_names)
description (-> use_meta_description)
25. DECUS-Symposium 3C05 / 1018-Apr-2002
Phase 2: MergingPhase 2: Merging
htmerge.exe Merge von vorheriger Datenbank mit neuen Wörtern
Aufbau eines Datenbank-Index über alle Dokumente
htfuzzy.exe Erzeugen von Extra-Datenbanken aus Dateien
(z.B. für „common endings“-Algorithmus aus ispell-Dateien)
htnotify.exe EMail-Benachrichtigung nach „Verfallsdatum“ eines HTML-Dokuments
gesteuert über spezielle <META> HTML-Tags:
htdig-notification-datehtdig-emailhtdig-email-subject
außerdem diverse Konfigurations-Attribute
25. DECUS-Symposium 3C05 / 1118-Apr-2002
Phase 3: SearchingPhase 3: Searching
htsearch.exe funktioniert sowohl als CGI-Programm als auch interaktiv
Parameterübergabe per Formular-Felder, u.a. config : zu verwendende Konfigurationsdatei
words : zu suchende Wörter
keywords: zwingend erforderliche Wörter
format : Festlegen des Ausgabe-Templates
sort : [rev]score, [rev]time, [rev]title
method : and, or, boolean
restrict: Beschränken der gefundenen URLs
matchesperpage: Anzahl der angezeigten Treffer pro Ergebnisseite
25. DECUS-Symposium 3C05 / 1218-Apr-2002
Phase 3: Searching (Forts.)Phase 3: Searching (Forts.)
allow_in_form
Beeinflussung der Suche u.a. durch
search_algorithmbacklink_factor (1000 * LinksIn/LinksOut)
date_factor (0)startday / startmonth / startyearendday / endmonth / endyear
Die Ausgabe: Templates
search_results_header / search_results_footersearch_results_wrappertemplate_mapnothing_found_filesyntax_error_file
25. DECUS-Symposium 3C05 / 1318-Apr-2002
TemplatesTemplates
Dateien mit HTML und Platzhalter-Variablen, z.B.
Documents $(FIRSTDISPLAYED) - $(LASTDISPLAYED) of $(MATCHES) matches.
Verschiedene Ausprägungen $(VAR) "normale" Ersetzung
$%(VAR) Escaped für Benutzung in einer URL
z.B. <a href="/pfad/skript?seite=$%(URL)">
$&(VAR) HTML-escaped
z.B. <a href="$&(URL)">$&(URL)</a>
$=(VAR) dekodiertes URL-Encoding Format (?)
Select-Listen, auch benutzerdefiniert vordefiniert: FORMAT, METHOD, SORT
25. DECUS-Symposium 3C05 / 1418-Apr-2002
Ein- und AusgabenEin- und Ausgaben
Programm Eingabe Ausgabeausserdem:
htdig.exe [URLs] .docdb Liste der URLs.docdb .wordlist Liste der Images
...htmerge.exe .docdb .docs.index
.wordlist .words.db
.docs.index
.words.db
htfuzzy.exe synonyms synonyms.dbenglish.0 root2word.db (common endings)english.aff word2root.db
htnotify.exe .docdb [EMail]
htsearch.exe [DB] [Suchergebnisse]synonyms.dbroot2word.dbword2root.db[Templates]
25. DECUS-Symposium 3C05 / 1518-Apr-2002
ht://Dig unter OpenVMSht://Dig unter OpenVMS
Voraussetzungen OpenVMS Alpha 7.2
Compaq TCP/IP Services - eine Emulation tut´s auch
eine Webserver-Software, die Executables ausführen kann(CSWS, WASD httpd, OSU httpd, Purveyor, ... jede eigentlich)
reichlich Plattenplatz
bei Verwendung der Quellen: Compaq C 6.x
Compaq C++ 6.x
Compaq MMS 3.3 oder MadGoat MMK 3.9
25. DECUS-Symposium 3C05 / 1618-Apr-2002
ht://Dig unter OpenVMS (Forts.)ht://Dig unter OpenVMS (Forts.)
Distribution als selbstentpackendes PCSI-Kit
Installation: $ RUN GNU-AXPVMS-HTDIG-V0301-6R1-1.PCSI-ZIP_AXPEXE
$ PRODUCT INSTALL HTDIG [/DESTINATION=pfad]
Verzeichnisstruktur:
[ .B IN ] [.C G I-B IN ] [.C O M M O N ] [.C O N F ]
[.D B ] [.D B B IN ] [.D O C U M E N T A T IO N ] [.IM A G E ]
[.S E A R C H ] [.T E M P ]
[.H T D IG ]
25. DECUS-Symposium 3C05 / 1718-Apr-2002
ht://Dig unter OpenVMS (Forts.)ht://Dig unter OpenVMS (Forts.)
Weitere Dateien SYS$COMMON:[SYS$STARTUP]HTDIG_STARTUP.COM
SYS$COMMON:[SYSMGR]HTDIG_CONFIG_DEFAULT.DAT
SYS$SPECIFIC:[SYSMGR]HTDIG_CONFIG.DAT
Logische Namen HTDIG_ROOT PCSI$DESTINATION:[HTDIG.]
HTDIG_CONFIG_DIR HTDIG_ROOT:[CONF]
HTDIG_DEFAULT_CONFIG_FILE HTDIG_CONFIG_DIR:HTDIG.CONF
HTDIG_TEMP HTDIG_ROOT:[TEMP]
LIBDB_SHR HTDIG_ROOT:[BIN]LIBDB_SHR.EXE
25. DECUS-Symposium 3C05 / 1818-Apr-2002
ht://Dig unter OpenVMS (Forts.)ht://Dig unter OpenVMS (Forts.)
Post-Installation: Kopieren von [.CGI-BIN]HTSEARCH.EXE in ein CGI-Verzeichnis
Kopieren von [.SEARCH]SEARCH.HTML (anpassen!) und [.IMAGE]*.* in Webserver-Verzeichnisse
Änderung der Zugriffsrechte von DB.DIR, [.COMMON]*.* und [.BIN]LIBDB_SHR.EXE derart, daß HTSEARCH.EXE unter dem Webserver-Account darauf Zugriff hat
$ @SYS$STARTUP:HTDIG_STARTUP.COM [CONFIG]
$ @SYS$STARTUP:HTDIG_STARTUP.COM [START]
Anpassen von HTDIG_CONFIG_DIR:HTDIG.CONF
$ @HTDIG_ROOT:[BIN]RUNDIG.COM /OUTPUT=RUNDIG.LOG -v -s
Test: Zugriff mit Browser auf SEARCH.HTML
25. DECUS-Symposium 3C05 / 1918-Apr-2002
ht://Dig unter OpenVMS: Ein Beispielht://Dig unter OpenVMS: Ein Beispiel
Beispiel: ein Compaq CSC Indizierung von OpenVMS 7.3 Dokumentation und Listings
Anpassung der htdig-Quellen zur besseren Erkennung von Text-Dokumenten, z.B. .LIS .SDL .H .MAR ...
je zwei Läufe nach dem ersten Lauf Erstellen einer bad_word_list (Wörter, die nicht
indiziert werden sollen) per Programm
Hardware: AlphaServer 8400 5/625 mit 6 CPUs
Daten des jeweils zweiten Laufes:
Dokumente Wörter Zeit htdig Zeit htmerge
Dokumentation 1574 55100 14m15s 1m19s
Listings 11017 964500 27m30s 23m0s
25. DECUS-Symposium 3C05 / 2018-Apr-2002
Die KonkurrenzDie Konkurrenz
SWISH-E „Simple Web Indexing System for Humans - Enhanced“
Homepage: http://swish-e.org/
OpenVMS-Binärdateien:http://wasd.vsm.com.au/wasd/swish*.zip
für Alpha und VAX
ursprünglich nur Filesystem-Indizierung, mittlerweile webfähig
Portierung von SWISH-E V1.1 war die Suchmaschine bei Process Software´s Purveyor
mittlerweile V2.0
einfachere Konfiguration und höhere Indizierungsgeschwindigkeit, aber dafür eingeschränktere Funktionalität...
25. DECUS-Symposium 3C05 / 2118-Apr-2002
LinksLinks
Die OpenVMS-Distribution ftp://ftp.pdv-systeme.de/vms/ und http://www.pdv-systeme.de/users/martinv/htdig/
gnu-axpvms-htdig-v0301-6r1-1.pcsi-zip_axpexe (4099 blocks)
Die Quellen des OpenVMS-Ports ftp://ftp.pdv-systeme.de/vms/ und http://www.pdv-systeme.de/users/martinv/htdig/
htdig-3_1_6-vms-rel1-src.zip (9635 blocks)
Die Homepage des Originals http://www.htdig.org/ http://htdig.sourceforge.net/
25. DECUS-Symposium 3C05 / 2218-Apr-2002
Fragen?Fragen?
Fragen?