rolfrost: Textdatei oder Datenbank für Such-Script ?

Beitrag lesen

hi,

eine gute und sehr performante Alternative zu Textdateien ist das Dateiformat einer ini Datei und der Zugriff via
Config::IniFiles; tie %hash;

Auf meiner WebSuite hab ich derzeit den gesamten Content in einer solchen ini gespeichert, das ist quasi der index und die Volltextsuche mit Text::Query (das Modul ist auch für kommerz. DBs geeignet) ist sehr flott.

Viele Grüße, Rolf

=ein bischen code zur suchfunktion

Suchergebnis ermitteln

sub results{
 my $mode = param('mode');
 my $query_string = trim(param('query_string')) or error("Eingabefehler", "keine Suchbegriffe...");
 form();

my $query = new Text::Query(
  $query_string,
  -mode => $mode
 );

my @resultkeys;
 foreach my $section(keys %content_ini){
  if ( $query->match("$content_ini{$section}{'body'} $content_ini{$section}{'descr'}") ){
   push @resultkeys, $section
  }
 }

....

}

content_ini sieht so aus
#[]
[40.14]
name=Zentrale Darstellung von Daten verteilter Systeme
descr=Clients stellen Informationen an der CGI - Schnittstelle bereit und ein Hauptsystem holt sich diese Daten ab um sie zentral darzustellen... die <i>libwww</i> und das <i>http</i> - Protokoll machen es möglich.
new=1
body= <<EOT
...
EOT