1 / 22

Eine Suchmaschine für Webserver unter OpenVMS

Eine Suchmaschine für Webserver unter OpenVMS. Martin Vorländer mv@pdv-systeme.de. ht://Dig?. indizierende Suchmaschine mit „Digger“ (Crawler, Harvester, Robot) Einsatzgebiet: einzelne Domänen oder Intranets

Download Presentation

Eine Suchmaschine für Webserver unter OpenVMS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Eine Suchmaschine für Webserver unter OpenVMS Martin Vorländer mv@pdv-systeme.de 25. DECUS-Symposium 3C05 / 1

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

  3. Features • 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 / 3

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

  5. Konfiguration • 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_dirdatabase_baseword_list word_dbdoc_db doc_indexinclude 25. DECUS-Symposium 3C05 / 5

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

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

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

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

  10. Phase 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 / 10

  11. Phase 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 / 11

  12. Phase 3: Searching (Forts.) • allow_in_form • Beeinflussung der Suche u.a. durch search_algorithm backlink_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 / 12

  13. Templates • 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 / 13

  14. Ein- und Ausgaben 25. DECUS-Symposium 3C05 / 14

  15. ht://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 / 15

  16. 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: 25. DECUS-Symposium 3C05 / 16

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

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

  19. ht://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: 25. DECUS-Symposium 3C05 / 19

  20. Die 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 / 20

  21. Links • Die OpenVMS-Distributionftp://ftp.pdv-systeme.de/vms/ undhttp://www.pdv-systeme.de/users/martinv/htdig/ gnu-axpvms-htdig-v0301-6r1-1.pcsi-zip_axpexe (4099 blocks) • Die Quellen des OpenVMS-Portsftp://ftp.pdv-systeme.de/vms/ undhttp://www.pdv-systeme.de/users/martinv/htdig/ htdig-3_1_6-vms-rel1-src.zip (9635 blocks) • Die Homepage des Originalshttp://www.htdig.org/ http://htdig.sourceforge.net/ 25. DECUS-Symposium 3C05 / 21

  22. Fragen? Fragen? 25. DECUS-Symposium 3C05 / 22

More Related