Re: boolean operator bei volltextsuche - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Angelika (14 Beiträge) am Donnerstag, 24.Oktober.2002, 12:11.
    Re: boolean operator bei volltextsuche

      Hallo Christoph,

      danke, es funktioniert.

      Allerdings läuft etwas nicht mehr richtig! Die Suchmaschine spukt nicht alle Einträge aus, die passen würden. Und dann auf einmal in umgekehrter Reihenfolge. Und sucht auch nicht mehr das ganze Wort, sondern bringt auch Einträge, in denen die Suchbegriffe nur enthalten sind.


      Irgendetwas ist durcheinander gekommen, aber ich verstehe nicht genügend, um den Fehler zu finden.

      Könntest Du mal drauf schauen? Ich habe unten den ganzen Code kopiert.

      Danke

      Angelika


      <style type="text/css">
       <!--
       body {background-color:#fff8f0}
      h1 {font-size:18 pt}
      table {font-size:12 pt}
       p, li {font-size:14 pt;
       bgcolor=fff8f0;
       
       font-family:"garamond";
       letter-spacing:0.2 mm;}
        
       //-->
      </style>
      <html><head><title></title></head>
      <body bgcolor=fff8f0>
      <font face="garamond" size=4>
      

      <h1 align=center>SUCHE IM ALPHABETISCHER KATALOG</h1>
      <p> Geben Sie bitte Ihren Suchbegriff ein. Falls Sie 2 oder mehre Suchbegriffe benützen wollen, setzen Sie bitte vor jeden Suchbegriff ein + ohne nachfolgende Leertaste. Suchen Sie z.B. Viktor Mann "Wir waren fünf", dann könnten Sie eingeben: +Vikor +Mann +fünf.</p>
      <p>Um die Suchgeschwindigkeit zu erhöhen, werden jeweils 2.500 Datensätze durchsucht. Um weitere 2.500 Datensätze zu durchsuchen, klicken Sie bitte auf "Suche in weiteren Datensätzen" bzw. "Suche nach weiteren Treffern"</p>
      <form action='baseportal.pl?htx=$htx' method='post' enctype='multipart/form-data'><input type='hidden' name='htx=' value='$htx'>Volltextsuche: <input type='text' name='_fullsearch==' value='$_fullsearch'><input type='submit' value='Suchen'></form>
      

      <perl>
       
      return if $_fullsearch eq "";
      get "fullsearch_match=20";
      while(get_next("buecher_abc"))
      {
      $out= <<EOF;
      <b>$a</b><br>$b - $c<p>
       
      EOF
      $out=~ s#$_fullsearch_regex#<b><font color=red>$1</font></b>#g;
      out $out;
      }
       
      my $newrange=$_fullsearch_range+$_fullsearch_range_length;
      my $txt;
      if($_fullsearch_match_pos<$newrange)
      {
      $txt="Suche nach weiteren Treffern";
      $newrange=$_fullsearch_match_pos;
      } 
      else
      {
      $txt="Suche in weiteren Datensätzen";
      }
      

      if($newrange<$_amount_all)
      {
      out "Es wurde noch nicht in allen Datensätzen gesucht: ";
       
      out "<a href=\"baseportal.pl?htx=$htx&_fullsearch~~".convert_url($_fullsearch). "&fullsearch_range=$newrange,$_fullsearch_range_length&go=weiterer\">$txt</a>";
      } 
      else
      {
      out "Die Datenbank wurde komplett durchsucht.";
      out "<b> Kein $go Treffer!</b><p>" if $_fullsearch_amount<1;
      }
      </perl>
      

      <p>Die Ergebnisse werden unten ausgegeben</p>



      <center>
      <FONT SIZE="2"></font><p>
      

      <table width=80% border=0 cellspacing=0 cellpadding=10>
      <tr><td>
      <font face="garamond" size=7>
      <br>
      <center>
      

      <p>


      </center>
      <perl>
      $_sel[2]=~ s/(^|\s+)/$1+/g if $_sel[2] ne "";
      </perl>
      <do action=all dataface=garamond spacing=10 databack=fff8f0 gridcolor=fff8f0 border=0 headalign=middle datasize=3 range^=0,100 pagebrowse=bottom buttonbrowse=bottom listtype=list input=link>
      

      <br>
      </td></tr></table>
      <p><FONT SIZE="2"></font>
      </center>
      <p>
      


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Angelika (14 Beiträge) am Mittwoch, 23.Oktober.2002, 11:09. WWW: libro-net.de
    boolean operator bei volltextsuche

      Hallo,

      ich bin verstehe so gut wie nichts vom Programmieren, allerdings habe ich es irgendwie hinbekommen eine Volltextsuche zu kopieren und zu installieren. Das einzige was mich noch stört ist, dass ich wenn ich nach mehr als einem Begriff suche, jeweils ein + voranstellen muss. Wie könnte man das noch verbessern?

      Angelika



      <form action='baseportal.pl?htx=$htx' method='post' enctype='multipart/form-data'><input type='hidden' name='htx=' value='$htx'>Volltextsuche: <input type='text' name='_fullsearch==' value='$_fullsearch'><input type='submit' value='Suchen'></form>
      

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 23.Oktober.2002, 17:10.
    Re: boolean operator bei volltextsuche

      Du könntest das "+"-Zeichen automatisch ergänzen, dazu brauchst a bisserl Perl-Code, is aber nich allzu viel:

      <perl>
      $_sel[2]=~ s/(^|\s+)/$1+/g if $_sel[2] ne "";
      </perl>
      

      Das müsste vor das <do action=all...> wenn Du damit arbeitest... Der obige Code ist ein bisschen tricky und passt nur für das obige Formular, hoffe es funktioniert ;-)

     Antworten

    Beitrag von Angelika (14 Beiträge) am Donnerstag, 24.Oktober.2002, 12:11.
    Re: boolean operator bei volltextsuche

      Hallo Christoph,

      danke, es funktioniert.

      Allerdings läuft etwas nicht mehr richtig! Die Suchmaschine spukt nicht alle Einträge aus, die passen würden. Und dann auf einmal in umgekehrter Reihenfolge. Und sucht auch nicht mehr das ganze Wort, sondern bringt auch Einträge, in denen die Suchbegriffe nur enthalten sind.


      Irgendetwas ist durcheinander gekommen, aber ich verstehe nicht genügend, um den Fehler zu finden.

      Könntest Du mal drauf schauen? Ich habe unten den ganzen Code kopiert.

      Danke

      Angelika


      <style type="text/css">
       <!--
       body {background-color:#fff8f0}
      h1 {font-size:18 pt}
      table {font-size:12 pt}
       p, li {font-size:14 pt;
       bgcolor=fff8f0;
       
       font-family:"garamond";
       letter-spacing:0.2 mm;}
        
       //-->
      </style>
      <html><head><title></title></head>
      <body bgcolor=fff8f0>
      <font face="garamond" size=4>
      

      <h1 align=center>SUCHE IM ALPHABETISCHER KATALOG</h1>
      <p> Geben Sie bitte Ihren Suchbegriff ein. Falls Sie 2 oder mehre Suchbegriffe benützen wollen, setzen Sie bitte vor jeden Suchbegriff ein + ohne nachfolgende Leertaste. Suchen Sie z.B. Viktor Mann "Wir waren fünf", dann könnten Sie eingeben: +Vikor +Mann +fünf.</p>
      <p>Um die Suchgeschwindigkeit zu erhöhen, werden jeweils 2.500 Datensätze durchsucht. Um weitere 2.500 Datensätze zu durchsuchen, klicken Sie bitte auf "Suche in weiteren Datensätzen" bzw. "Suche nach weiteren Treffern"</p>
      <form action='baseportal.pl?htx=$htx' method='post' enctype='multipart/form-data'><input type='hidden' name='htx=' value='$htx'>Volltextsuche: <input type='text' name='_fullsearch==' value='$_fullsearch'><input type='submit' value='Suchen'></form>
      

      <perl>
       
      return if $_fullsearch eq "";
      get "fullsearch_match=20";
      while(get_next("buecher_abc"))
      {
      $out= <<EOF;
      <b>$a</b><br>$b - $c<p>
       
      EOF
      $out=~ s#$_fullsearch_regex#<b><font color=red>$1</font></b>#g;
      out $out;
      }
       
      my $newrange=$_fullsearch_range+$_fullsearch_range_length;
      my $txt;
      if($_fullsearch_match_pos<$newrange)
      {
      $txt="Suche nach weiteren Treffern";
      $newrange=$_fullsearch_match_pos;
      } 
      else
      {
      $txt="Suche in weiteren Datensätzen";
      }
      

      if($newrange<$_amount_all)
      {
      out "Es wurde noch nicht in allen Datensätzen gesucht: ";
       
      out "<a href=\"baseportal.pl?htx=$htx&_fullsearch~~".convert_url($_fullsearch). "&fullsearch_range=$newrange,$_fullsearch_range_length&go=weiterer\">$txt</a>";
      } 
      else
      {
      out "Die Datenbank wurde komplett durchsucht.";
      out "<b> Kein $go Treffer!</b><p>" if $_fullsearch_amount<1;
      }
      </perl>
      

      <p>Die Ergebnisse werden unten ausgegeben</p>



      <center>
      <FONT SIZE="2"></font><p>
      

      <table width=80% border=0 cellspacing=0 cellpadding=10>
      <tr><td>
      <font face="garamond" size=7>
      <br>
      <center>
      

      <p>


      </center>
      <perl>
      $_sel[2]=~ s/(^|\s+)/$1+/g if $_sel[2] ne "";
      </perl>
      <do action=all dataface=garamond spacing=10 databack=fff8f0 gridcolor=fff8f0 border=0 headalign=middle datasize=3 range^=0,100 pagebrowse=bottom buttonbrowse=bottom listtype=list input=link>
      

      <br>
      </td></tr></table>
      <p><FONT SIZE="2"></font>
      </center>
      <p>
      

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 24.Oktober.2002, 17:06.
    Re: boolean operator bei volltextsuche

      Mmh, aber _vor_ dem Einbau von

      <perl>
      $_sel[2]=~ s/(^|\s+)/$1+/g if $_sel[2] ne "";
      </perl>
      

      hat das alles funktioniert?? Kann mir garnich vorstellen, dass das gleich soviel durcheinander bringt... Hast Du auch einen Link zu der Such-Seite?

     Antworten

    Beitrag von Angelika (14 Beiträge) am Donnerstag, 24.Oktober.2002, 18:58.
    Re: boolean operator bei volltextsuche

      Hallo Christoph,

      wenn ich bei untenstehendem Code bei _fullsearch==" eingebe, sucht er mir nur ganze Worte, soweit funktioniert es jetzt nun. Vorher war hier schon eine Macke.

      out "<a href=\"baseportal.pl?htx=$htx&_fullsearch~~".convert_url($_fullsearch). "&fullsearch_range=$newrange,$_fullsearch_range_length&go=weiterer\">$txt</a>";
      

      Mein Link zur Suchseite:

      www.libro-net.de/baseportal?htx=/libro-net.de/buecher_abc&cmd=do_search

      Wenn ich nun den perl-code einbaue, und dann die Suche benutze, spuckt er mir die ersten Ergebnisse aus, drücke ich dann auf "Suche in weiteren Datensätzen", dann erscheinen die selben Ergebnisse wieder.
      Inzwischen habe ich festgestellt, dass im "fullsearch_range=" wie es, siehe unten, im Adressfenster dargestellt ist, die Suche statt in Schritten von "2500,2500&go=weiterer" bzw."2500,5000&go=weiterer" sich in wesentlich kürzeren Schritt abspielt: 47,2500 dann 96,2500 dann 178,2500 usw.



      http://libro-net.de/baseportal/baseportal.pl?htx=/libro-net.de/buecher_abc&_fullsearch==%2bmann+%2bund&fullsearch_range=2500,2500&go=weiterer

      Bei diesem Fall habe ich die Suchbegriffe 'Mann' sowie 'und' eingegeben.

      Vielleicht hast Du eine Idee dazu??

      Angelika

     Antworten

    Beitrag von mk (966 Beiträge) am Freitag, 25.Oktober.2002, 11:48.
    Re: boolean operator bei volltextsuche

      Ich habe diesen Perl Cod am Anfang der Ausgabeseite zu stehen:
      <perl>
      

      if (index($suchbegriffe,"+") == -1) {
        @suchargumente=split(/ /, $suchbegriffe);
        $suchbegriffe="+"; 
        for (@suchargumente) {
         $suchbegriffe=$suchbegriffe.$_.",+";
        }
        $suchbegriffe=substr($suchbegriffe,0,length($suchbegriffe)-2);
       }
      

      </perl>
      ist aber nicht von mir und ich verstehe es auch nicht, bei mir geht aber die Volltextsuche mit +.
      Siehe:
      www.brueckenbau-links.de

     Antworten


     
 Liste der Einträge von 43050 bis 43200:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.05s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!