Eine Suchmaschine für Webserver unter OpenVMS

22
25. DECUS-Symposium 3C05 / 1 Eine Suchmaschine für Webserver unter OpenVMS Martin Vorländer [email protected]

description

Eine Suchmaschine für Webserver unter OpenVMS. Martin Vorländer [email protected]. ht://Dig?. indizierende Suchmaschine mit „Digger“ (Crawler, Harvester, Robot) Einsatzgebiet: einzelne Domänen oder Intranets - PowerPoint PPT Presentation

Transcript of Eine Suchmaschine für Webserver unter OpenVMS

Page 1: Eine Suchmaschine für Webserver  unter OpenVMS

25. DECUS-Symposium 3C05 / 1

Eine Suchmaschine für Webserver unter OpenVMS

Martin Vorländer

[email protected]

Page 2: Eine Suchmaschine für Webserver  unter OpenVMS

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)

Page 3: Eine Suchmaschine für Webserver  unter OpenVMS

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

Page 4: Eine Suchmaschine für Webserver  unter OpenVMS

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

Page 5: Eine Suchmaschine für Webserver  unter OpenVMS

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

Page 6: Eine Suchmaschine für Webserver  unter OpenVMS

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

Page 7: Eine Suchmaschine für Webserver  unter OpenVMS

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

Page 8: Eine Suchmaschine für Webserver  unter OpenVMS

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

Page 9: Eine Suchmaschine für Webserver  unter OpenVMS

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)

Page 10: Eine Suchmaschine für Webserver  unter OpenVMS

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

Page 11: Eine Suchmaschine für Webserver  unter OpenVMS

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

Page 12: Eine Suchmaschine für Webserver  unter OpenVMS

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

Page 13: Eine Suchmaschine für Webserver  unter OpenVMS

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

Page 14: Eine Suchmaschine für Webserver  unter OpenVMS

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]

Page 15: Eine Suchmaschine für Webserver  unter OpenVMS

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

Page 16: Eine Suchmaschine für Webserver  unter OpenVMS

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 ]

Page 17: Eine Suchmaschine für Webserver  unter OpenVMS

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

Page 18: Eine Suchmaschine für Webserver  unter OpenVMS

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

Page 19: Eine Suchmaschine für Webserver  unter OpenVMS

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

Page 20: Eine Suchmaschine für Webserver  unter OpenVMS

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...

Page 21: Eine Suchmaschine für Webserver  unter OpenVMS

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/

Page 22: Eine Suchmaschine für Webserver  unter OpenVMS

25. DECUS-Symposium 3C05 / 2218-Apr-2002

Fragen?Fragen?

Fragen?