Beitrag von Conny (70 Beiträge) am Freitag, 9.August.2002, 16:47.
Suchkriterien bei Volltextsuche
Hallo bpler,
Steh' mal wieder im Regen :-)
Hätte gerne in der Volltextsuche eine UND-Verknüpfung
die nur dann ein Ergebnis anzeigt wenn beide Suchkriterien gemeinsam erfüllt sind.
Bsp.
Suche nach Strasse (Unter den Linden) und Ort (Berlin)
gibt nur den einen Datensatz aus und nicht
alle Möglichkeiten wie nur "Unter den Linden" oder nur "Berlin".
Hoffentlich hab ich mein Anliegen verständlich formuliert :-)
Gibts 'nen Hinweis dazu in der Doku?
Vorab schon mal herzlichen Dank!
Antworten
Beitrag von Helmut (38 Beiträge) am Freitag, 9.August.2002, 17:53. WWW: grobmotorik.de/shop.htm
Re: Suchkriterien bei Volltextsuche
Hallo Connie, der nette Sander hat mir so was mal gebastelt, ich habe Dir das hier alles reinkopiert. Ich hoffe , Du kannst damit was anfangen. Wie das funktioniert, kannst Du Dir auf meiner Seite anschauen.
Hier die Übergabe des Eingabefeldes, hier mußt Du nur eine Kleinigkeit ändern.
<FORM ACTION="baseportal.pl?htx=/Deineausgabeseite" METHOD="POST" TARGET="view" ENCTYPE="multipart/form-data">
<input type=hidden name="cmd=" value="search">
<INPUT TYPE="hidden" NAME="htx=" VALUE="/Deineausgabeseite">
<CENTER> <INPUT TYPE="text" SIZE="13" NAME="suchbegriffe="
VALUE="$_fullsearch"></CENTER></td>
<td width="49%">
<CENTER> <INPUT TYPE="submit" VALUE="Suchen"></CENTER></td>
</tr><tr>
Hier das geänderte Template:
if ($suchbegriffe && !$fullsearch_range) ######suchbegriffe speichern
{
$_put{_amount}=1;
$_put{suchbegriff}=$suchbegriffe;
$_put{Datum}=datum("jetzt");
put undef,"suchbegriffe";
}
$suchbegriffe_sicher=$suchbegriffe;
@suchargumente=split(/ /,$suchbegriffe);
$suchbegriffe="+".join(",+",@suchargumente);
$sid=$_REMOTE_ADDR.$_REMOTE_PORT.time;
$formcounter=-1;
out <<EOF;
get "_fullsearch==$suchbegriffe fullsearch_match=20 ";
$amount_search=$_amount_all;
#####Hier kommt Deine Ausgabeseite hin, meine habe ich weggelassen, ist zu groß.####
my $newrange=$_fullsearch_range+$_fullsearch_range_length;
my $txt;
if($_fullsearch_match_pos<$newrange)
{
$txt="Suche nach weiteren Treffern";
$newrange=$_fullsearch_match_pos;
}
else
{
out "<b>Kein Treffer.</b><p>" if $_fullsearch_amount<1;
$txt="Suche in weiteren Datensätzen";
}
if($newrange<$amount_search&& $txt)
{
out "Es wurde noch nicht in allen Datensätzen gesucht: ";
out "<a href=\"$link&cmd=search&suchbegriffe=".convert_url($suchbegriffe_sicher)."&fullsearch_range=$newrange,$_fullsearch_range_length\">$txt</a>";
} else
{
out "Die Datenbank wurde komplett durchsucht.";
}
}
Viel Spass beim Einbasteln, Helmut
Antworten
Beitrag von Conny (70 Beiträge) am Samstag, 10.August.2002, 16:47.
Re: Suchkriterien bei Volltextsuche
Hallo Helmut,
zunächst mal vielen Dank für deine Hilfe. Ich habe deine Angaben kopiert und eingefügt. Jezt habe ich nur noch das Problem mit dem Einbinden meiner Ausgabeseite: Wie muss ich die eingeben - mit Klammern oder ohne?
Wollte auf deiner Website (gefällt mir gut - fahr nur leider kein Motorrad) nachsehen, bekomme jedoch den Hinweis "Fehler auf der Seite". Und wenn ich einen Suchbegriff eingebe kommt leider immer nur "kein Treffer". Hab' ich vielleicht vergessen bei den Browseroptionen was einzustellen?
Wäre nett, wenn du dir zwecks Ausgabeseite die Programmierung nochmal anschauen könntest.
<perl>
if ($suchbegriffe && !$fullsearch_range) ######suchbegriffe speichern
{
$_put{_amount}=1;
$_put{suchbegriff}=$suchbegriffe;
$_put{Datum}=datum("jetzt");
put undef,"suchbegriffe";
}
$suchbegriffe_sicher=$suchbegriffe;
@suchargumente=split(/ /,$suchbegriffe);
$suchbegriffe="+".join(",+",@suchargumente);
$sid=$_REMOTE_ADDR.$_REMOTE_PORT.time;
$formcounter=-1;
out <<EOF;
get "_fullsearch==$suchbegriffe fullsearch_match=20 ";
$amount_search=$_amount_all;
#####Hier kommt Deine Ausgabeseite hin, meine habe ich weggelassen, ist zu groß.####
my $newrange=$_fullsearch_range+$_fullsearch_range_length;
my $txt;
if($_fullsearch_match_pos<$newrange)
{
$txt="Suche nach weiteren Treffern";
$newrange=$_fullsearch_match_pos;
}
else
{
out "<b>Kein Treffer.</b><p>" if $_fullsearch_amount<1;
$txt="Suche in weiteren Datensätzen";
}
if($newrange<$amount_search&& $txt)
{
out "Es wurde noch nicht in allen Datensätzen gesucht: ";
out "<a href=\"$link&cmd=search&suchbegriffe=".convert_url($suchbegriffe_sicher)."&fullsearch_range=$newrange,$_fullsearch_range_length\">$txt</a>";
} else
{
out "Die Datenbank wurde komplett durchsucht.";
}
}
</perl>
Dankeeeeeeeee. :-)
Antworten
Beitrag von Helmut (38 Beiträge) am Samstag, 10.August.2002, 23:21.
Re: Suchkriterien bei Volltextsuche
Antworten
Beitrag von Conny (70 Beiträge) am Sonntag, 11.August.2002, 16:02.
Re: Suchkriterien bei Volltextsuche
Hallo Helmut,
danke für die Unterstützung, aber irgendwie hab ich Nichts verstanden.
Hab die Zeilen eingebaut - krieg aber nur ne Fehlermeldung... ohje habs mir doch irgendwie leichter vorgestellt...
werde weiterhine probieren und hoffen ...
ciao
Antworten
Beitrag von Helmut (38 Beiträge) am Sonntag, 11.August.2002, 20:03.
Re: Suchkriterien bei Volltextsuche
Antworten
Beitrag von Conny (70 Beiträge) am Montag, 12.August.2002, 11:11.
Re: Suchkriterien bei Volltextsuche
Hallo Helmut,
da ich den/die Fehler nicht finde, habe ich die Seiten unter http://www.steven-vogel.de/test.html hinterlegt.
Wäre nett, wenn du sie dir mal anschauen und -falls nicht zuviel verlangt- mir dann erklären könntest was falsch ist.
Vielen Dank und liebe Grüße
Conny
Antworten
Beitrag von Helmut (38 Beiträge) am Montag, 12.August.2002, 12:19.
Re: Suchkriterien bei Volltextsuche
Hallo Conny,
Änder mal
<form action="baseportal.pl?htx=/testdb/ergebnis&db=test&cmd=search&range=0,200" method="post" enctype="multipart/form-data">
In:
<form action="baseportal.pl?htx=$htx" method="post" enctype="multipart/form-data">
Die Ausgabe probier mal so:
get "_fullsearch==$suchbegriffe fullsearch_match=20 ";
$amount_search=$_amount_all;
while(get_next)
{
$out= <<EOF;
<b>$Rubrik</b><br>$Name - $Internet<p>
EOF
}
Wenns nicht klappt stell Dein komplettes Template hier rein. Viele Grüße, Helmut
Antworten
Beitrag von Conny (70 Beiträge) am Montag, 12.August.2002, 14:52.
Re: Suchkriterien bei Volltextsuche
Hallo Helmut,
schon beim Aufruf der Seite kommt bereits folgende Fehlermeldung:
[ Fehler: (perl) in : Unmatched right curly bracket at (eval 48) line 29, at end of line (Might be a runaway multi-line << string starting on line 15) syntax error at (eval 48) line 29, near "; }" ]
Deshalb hier die komplette Seite:
<table width="99%" cellspacing="6" cellpadding="2">
<tr>
<form action="baseportal.pl?htx=/testdb/ergebnis&db=test&cmd=search&range=0,200" target="Frame3" method="post" enctype="multipart/form-data">
<td width="75%" align="RIGHT">
<input type=hidden name="htx=" value="/testdb/ergebnis" target="Frame3">
<input type=hidden name="db=" value="test">
<input type=hidden name="cmd=" value="search">
<input type=hidden name="range=" value="0,200">
<input type=hidden name="Fenster1~=" value="Rastatt" checked>
<select name="Rubrik==" size="3" style="font-family: verdana; font-size: 11px;">
<option value="nothing">BRANCHEN
<option value="nothing">------------------------
<option value="nothing">Bitte wählen Sie:
<option value="nothing">------------------------
<option value="Altersvorsorge"> Altersvorsorge
<option value="Apotheken"> Apotheken
<option value="Autoglas"> Autoglas
<option value="Autoglaserei"> Autoglaserei
<option value="Autozubehör"> Autozubehör
<option value="nothing">------------------------
<option value="Bad Studio"> Bad Studio
<option value="Blechnerei"> Blechnerei
<option value="Büroeinrichtungen"> Büroeinrichtungen
<option value="nothing">------------------------
<option value="Café"> Café
<option value="Computer-Seminare"> Computer-Seminare
<option value="Computer Hard- und Software"> Computer Hard- und Software
<option value="nothing">------------------------
<option value="Digitaldruck"> Digitaldruck
<option value="Demontagen"> Demontagen
<option value="Dokumentenverwaltung"> Dokumentenverwaltung
<option value="Dreherei"> Dreherei
<option value="Drucksachen"> Drucksachen
<option value="nothing">------------------------
<option value="EDV-Beratung"> EDV-Beratung
<option value="Entrümpelungen"> Entrümpelungen
<option value="nothing">------------------------
<option value="Fenster / Türen"> Fenster / Türen
<option value="Feinmechanik"> Feinmechanik
<option value="Ferienwohnungen"> Ferienwohnungen
<option value="nothing">------------------------
<option value="Garten- und Grundstückspflege"> Garten- und Grundstückspflege
<option value="Gartengestaltung"> Gartengestaltung
<option value="Gaststätten"> Gaststätten
<option value="Gebäudereinigung"> Gebäudereinigung
<option value="Gesundheit"> Gesundheit
<option value="Gipser"> Gipser
<option value="Glasreinigung"> Glasreinigung
<option value="Goldschmuck"> Goldschmuck
<option value="Golf-Zubehör"> Golf-Zubehör
<option value="Gruppenreisen"> Gruppenreisen
<option value="nothing">------------------------
<option value="Handwerksorganisationen"> Handwerksorganisationen
<option value="Hallenbau"> Hallenbau
<option value="Hausbau"> Hausbau
<option value="Hausmeisterservice"> Hausmeisterservice
<option value="Haustüren"> Haustüren
<option value="Heizung"> Heizungen
<option value="Hotelservice"> Hotelservice
<option value="nothing">------------------------
<option value="Industrieroboter"> Industrieroboter
<option value="Inneneinrichtungen"> Inneneinrichtungen
<option value="Installation"> Installation
<option value="Internet / Intranet"> Internet / Intranet
<option value="Investmentfonds"> Investmentfonds
<option value="nothing">------------------------
<option value="Kleintransporte"> Kleintransporte
<option value="Küchen"> Küchen
<option value="Kuren"> Kuren
<option value="nothing">------------------------
<option value="Maler"> Maler
<option value="Maschinenbau"> Maschinenbau
<option value="Metallbau"> Metallbau
<option value="Metzgerei"> Metzgerei
<option value="Möbelhäuser"> Möbelhäuser
<option value="Multimedia"> Multimedia
<option value="nothing">------------------------
<option value="Ombrello"> Ombrello
<option value="nothing">------------------------
<option value="Pantomime"> Pantomime
<option value="Party-Service"> Party-Service
<option value="Pflasterbau"> Pflasterbau
<option value="Prospekte"> Prospekte
<option value="nothing">------------------------
<option value="Rechtsanwälte"> Rechtsanwälte
<option value="Reisen"> Reisen
<option value="Repro"> Repro
<option value="Rollläden"> Rollläden
<option value="nothing">------------------------
<option value="Sanitär"> Sanitär
<option value="Schlosserei"> Schlosserei
<option value="Software"> Software
<option value="Sonnenschutz"> Sonnenschutz
<option value="Sportfachgeschäft"> Sportfachgeschäft
<option value="Stahlbau"> Stahlbau
<option value="nothing">------------------------
<option value="Tagesessen"> Tagesessen
<option value="Textilhandel"> Textilhandel
<option value="Theater"> Theater
<option value="nothing">------------------------
<option value="Umbauten"> Umbauten
<option value="Unterhaltsreinigung"> Unterhaltsreinigung
<option value="nothing">------------------------
<option value="Vereinsausstatter"> Vereinsausstatter
<option value="Vermögensaufbau"> Vermögensaufbau
<option value="nothing">------------------------
<option value="Wanne in Wanne"> Wanne in Wanne
<option value="Webdesign"> Webdesign
<option value="Werkzeuge"> Werkzeuge
<option value="Wintergarten"> Wintergarten
<option value="nothing">------------------------
<option value="Zimmerei"> Zimmerei
<option value="nothing">------------------------
</select>
</td>
<td width="10%" valign="BOTTOM">
<INPUT TYPE="image" SRC="../bilder/go.gif" value="submit"><br>
<img src="../bilder/space.gif" width=10 height=5 border=0><br>
</td>
</form>
<td valign="BOTTOM">
<form action="baseportal.pl?htx=$htx" method="post" enctype="multipart/form-data">
<input type=hidden name="cmd=" value="search">
<input type=hidden name="htx=" value="/testdb/ergebnis">
<INPUT TYPE="text" SIZE="13" NAME="suchbegriffe=" VALUE="$_fullsearch">
<perl>
if ($suchbegriffe && !$fullsearch_range) ######suchbegriffe speichern
{
$_put{_amount}=1;
$_put{suchbegriff}=$suchbegriffe;
$_put{Datum}=datum("jetzt");
put undef,"suchbegriffe";
}
$suchbegriffe_sicher=$suchbegriffe;
@suchargumente=split(/ /,$suchbegriffe);
$suchbegriffe="+".join(",+",@suchargumente);
$sid=$_REMOTE_ADDR.$_REMOTE_PORT.time;
$formcounter=-1;
out <<EOF;
get "_fullsearch==$suchbegriffe fullsearch_match=20 ";
$amount_search=$_amount_all;
while(get_next)
<b>$Rubrik</b><br>$Name - $Internet<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
{
out "<b>Kein Treffer.</b><p>" if $_fullsearch_amount<1;
$txt="Suche in weiteren Datensätzen";
}
if($newrange<$amount_search&& $txt)
{
out "Es wurde noch nicht in allen Datensätzen gesucht: ";
out "<a href=\"$link&cmd=search&suchbegriffe=".convert_url($suchbegriffe_sicher)."&fullsearch_range=$newrange,$_fullsearch_range_length\">$txt</a>";
} else
{
out "Die Datenbank wurde komplett durchsucht.";
}
}
</perl>
<img src="../bilder/space.gif" width=10 height=7 border=0><br>
<INPUT TYPE="image" SRC="../bilder/suchen.gif" value="submit">
</td>
</form>
<td><img src="../bilder/space.gif" width=10 height=10 border=0></td>
</tr>
</table>
Vielen Dank
Conny
Antworten
Beitrag von Helmut (38 Beiträge) am Montag, 12.August.2002, 18:04.
Re: Suchkriterien bei Volltextsuche
Antworten
Beitrag von Conny (70 Beiträge) am Dienstag, 13.August.2002, 11:52.
Re: Suchkriterien bei Volltextsuche
Hallo Helmut,
hab' die Fehlermeldungen jetzt weg und die Suche funktioniert auch, aber es werden immer noch "alle Datensätze" bei der UND-Verknüpfung angezeigt auf die beide Suchkriterien (entweder/oder) zutreffen.
Was ich mir jedoch vorstelle ist, dass nur die Datensätze angezeigt werden, auf die beide Suchkriterien zutreffen und nicht nur ein Suchbegriff darin vorkommt.
Tut mir leid, wenn ich nerve :-(
Aber es interessiert mich halt ob ich noch 'nen Fehler gemacht habe oder ob es vielleicht prinzipiell nicht geht. ? ! ?
<form action="baseportal.pl?htx=$htx" method="post" enctype="multipart/form-data">
<input type=hidden name="cmd=" value="search">
<input type=hidden name="htx=" value="/testdb/ergebnis">
<INPUT TYPE="text" SIZE="13" NAME="suchbegriffe=" VALUE="$_fullsearch">
<perl>
if ($suchbegriffe && !$fullsearch_range) ######suchbegriffe speichern
{
$_put{_amount}=1;
$_put{suchbegriff}=$suchbegriffe;
$_put{Datum}=datum("jetzt");
put undef,"suchbegriffe";
}
$suchbegriffe_sicher=$suchbegriffe;
@suchargumente=split(/ /,$suchbegriffe);
$suchbegriffe="+".join(",+",@suchargumente);
$sid=$_REMOTE_ADDR.$_REMOTE_PORT.time;
$formcounter=-1;
$out <<EOF;
get "_fullsearch==$suchbegriffe fullsearch_match=20 ";
$amount_search=$_amount_all;
while(get_next)
{
$out= <<EOF;
<b>$Rubrik</b><br>$Name - $Internet<p>
EOF
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
{
out "<b>Kein Treffer.</b><p>" if $_fullsearch_amount<1;
$txt="Suche in weiteren Datensätzen";
}
if($newrange<$amount_search&& $txt)
{
out "Es wurde noch nicht in allen Datensätzen gesucht: ";
out "<a href=\"$baseportal.pl?htx=/testdb/ergebnis&db=test&cmd=search&suchbegriffe=".convert_url ($suchbegriffe_sicher)."&fullsearch_range=$newrange,$_fullsearch_range_length\">$txt</a>";
}
</perl>
<img src="../bilder/space.gif" width=10 height=7 border=0><br>
<INPUT TYPE="image" SRC="../bilder/suchen.gif" value="submit">
</td>
</form>
Conny, die leider imemr noch Anfänger ist...
Antworten
Beitrag von Helmut (38 Beiträge) am Dienstag, 13.August.2002, 12:33. WWW: www.grobmotorik.de/shop
Re: Suchkriterien bei Volltextsuche
Antworten
Beitrag von Conny (70 Beiträge) am Dienstag, 13.August.2002, 13:12.
Re: Suchkriterien bei Volltextsuche
Hallo Helmut,
vielen Dank für deine Hilfe.
War nochmal auf deinen Seiten, habe aber hier immer noch das gleiche Problem. Meldugn auf deiner Seite:
'Kein Treffer.
Es wurde noch nicht in allen Datensätzen gesucht: Suche in weiteren Datensätzen '
Nach 3 -4 mal bestätigen (weitersuchen) kommt lediglich:
'Die Datenbank wurde komplett durchsucht.'
Also Scuhbegriff habe ich beispielsweise 'Bodenfreiheit' eingegeben.
Kannst du dir darauf einen Reim machen?
Ich setze meine Frage nochmale ins Forum. Vielleicht hat ja noch jemand 'ne Idee ;-)
Liebe von dir, dass du weiterhin geantwortet hast.
Danke.
Ciao.
Antworten
Beitrag von Conny (70 Beiträge) am Montag, 12.August.2002, 14:54.
Re: was vergessen zu :Suchkriterien bei Volltextsuche
Das Auswahlmenue funktioniert.
Nur bei der Volltextsuche klemmts.
Antworten