Besseresser: Indizierung von HTML Dokumenten

Guten Morgen!

Für eine Suche nach html. - (bzw. htm. -) Dokumente benötige ich eine Indizierung der Dokumente. So soll das Script oder Programm die Dateien durchsuchen und anschließend die vorhanden Wörter inklusive Dateiort in einer Listenform aufbereiten, damit ich diese in eine mysql Datenbank importieren kann.

Im Moment teste ich das ganze auf meinem System mit xampp, später wird das ganze unter Windows Server 2003 laufen. Allerdings könnte man mit cygwin auch Shellscripts laufen lassen...

Kennt ihr zufällig ein geeignetes Programm oder Script?

Danke für alle Antworten :-)

Schönen tag noch!

  1. hi,

    Kennt ihr zufällig ein geeignetes Programm oder Script?

    Naja, sowas ähnliches hab ich schon mal gemacht. Allerdings hatte ich dabei den Index der html-Doks schonmal als Textdatei vorliegen. Auf jeden Fall dürfte Dir das Perl Modul "HTML::TagParser" weiterhelfen, damit kriegst Du z.B. alles was zwischen <body> und </body> steht.

    Um einzelne Worte zu bekommen, splitte den Text nach \s+. Duplikate haust Du dann raus mit einem hash. Und mit einem hash-Slice entfernst Du mit einem Schlag Stop-Worte wie "der die das usw". Solche Stopwort-Listen findest Du auch im Internet.

    Hotte

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
    1. Um einzelne Worte zu bekommen, splitte den Text nach \s+. Duplikate haust Du dann raus mit einem hash. Und mit einem hash-Slice entfernst Du mit einem Schlag Stop-Worte wie "der die das usw". Solche Stopwort-Listen findest Du auch im Internet.

      Danke dir!
      Bräuchte aber noch genauere Infos zu dem Hashthema.
      Wie funktioniert das?

      Gruß,
      Besseresser

      1. hi,

        Danke dir!
        Bräuchte aber noch genauere Infos zu dem Hashthema.
        Wie funktioniert das?

          
        #!/usr/bin/perl  
        ################################################  
        use strict;  
          
        my %h;  
          
        @h{qw(eins zwei drei der die das)} = (1..6);  
          
        print join("\n", keys %h), "\n\n--------\n\n"; # hier haste noch alle  
          
        my @stopwords = qw(der die das);  
          
        delete @h{@stopwords};  
          
        print join("\n", keys %h), "\n"; # no stopwords  
          
        
        

        Hotte

        --
        Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
        1. Ui, danke Hotte!
          Dann werde ich mich da erstmal reinwuseln...

          Die Gewichtung ist erst mal optional. Primäres Ziel ist, dass ich eine mögliche Lösung habe.

    2. Hello,

      Um einzelne Worte zu bekommen, splitte den Text nach \s+. Duplikate haust Du dann raus mit einem hash.

      Er müsste sie gewichten. Und im Index auch vermerken, auf welcher Seite das Suchwort wie oft vorkommt.

      Liebe Grüße aus dem Cyberspace

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Hello,

        »» Um einzelne Worte zu bekommen, splitte den Text nach \s+. Duplikate haust Du dann raus mit einem hash.

        Er müsste sie gewichten. Und im Index auch vermerken, auf welcher Seite das Suchwort wie oft vorkommt.

        Letzteres schon. Die Wichtung nicht unbedingt, nur dann, wenn die Suche, die auf den Index aufsetzt, nach einer solchen Relevanz die Ergebnisse ausgibt, z.B. sortiert (so auf meiner Site, siehe match-Method bei Perl-Modul Text::Query).

        Hotte

        --
        Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
        1. Momentan realisiere ich das Ganze mit php, sowohl die Indizierung, als auch die Suche.

          Bei Problemen und weiteren Nachfragen melde ich bestimmt noch einmal :-)

          Schönen Tag wünsche ich euch!