Archiv verlassen und diese Seite im Standarddesign anzeigen : Searchindex
Hallo Leute,
ich hab das System beim vB gesehen und wollte mal wissen, ob mir jemand weiterhelfen kann, weil ich überlege, sowas auch für meine Datenbank (kein Board) zu machen.
Und zwar hab ich 2 Datenfelder, die durchsucht werde können und bei beiden stellt sich mir ein Problem:
Wenn ich für die Suche nur so einen Index ähnlich wie im vB benutze, kann ich keine Suche realisieren, die die Suchwörter nicht auseinander hackt. Also eine, die nach dem kompletten String sucht. Wie mache ich sowas dann ?
In der Wortliste sind ja nur einzelne Wörter ?!
Muss ich dann die Suche auf normalem Wege machen - also sprich die Datentabelle durchsuchen.
Ich hoffe, jemand kann mir weiterhelfen.
Ach, noch ne Frage:
Läuft die Suche im vB nur über die Wortliste und den Index, auch auf die Gefahr hin, dass der nicht aktuell ist und so manche Themen nicht gefunden werden ?
Oder wie geht das im vB ?
Hallo André :)
Verstehe ich Dich richtig, wenn Du nach dem kompletten String eines Datenfeldeintrages suchen willst ?
Z.B. Datenfeld a) : "omixgliron superscratcher" und diese dann auch die Bedingung für die Suche sein soll?
Sprich: Sucht jemand nach "omixgliron" und "superscratcher" getrennt, dann soll die Suche dieses Feld nicht finden (das wäre dann die Quintesenz Deiner Forderung) ?
Etwas ungewöhnlich, Deine Forderung.
Der Search-Index wird im vB aktualisiert, soweit ich das weiß entweder bei jedem Beitrag oder bei jeder Anfrage über die Suchfunktion.
(Er kann also nicht "veralten" )
Hallo Chris (Hui - ein Bekannter aus dem STF ;) ),
danke für deine Antwort.
> Verstehe ich Dich richtig, wenn Du nach dem kompletten String
> eines Datenfeldeintrages suchen willst ?
Nicht ganz das, was ich meine. Ich will, dass der Suchstring nicht zerhackt wird und nach jedem Wort mit einer UND/ODER Verknüpfung sondern nach dem kompletten String gesucht wird. Der String muss ja nicht = gleich dem Feld sein, er muss nur so wie er eingeben ist, enthalten sein.
Beispiel: Die Suche nach "Britney Spears" als normale Suche findet auch "Spears, Britney". Die Suche nach dem String "Britney Spears" dagegen nicht. Das macht durchaus Sinn (Schau dir mal Google an). Also ich finde meine "Forderung" gar nicht soo ungewöhnlich.
> Der Search-Index wird im vB aktualisiert, soweit ich das weiß
> entweder bei jedem Beitrag oder bei jeder Anfrage über die Suchfunktion.
Danke für die Antwort. Gut zu wissen ;)
Aber weiterhin bleiben meine Fragen offen (ich weiß, ich bin ein neugieriger Mensch :o ):
- Kann ich (wenn ja wie) eine Suche nach einem String über einen Index realisieren ?
- Mir ist gerade aufgefallen, dass das vB nicht alle Wörter in die Liste aufnimmt (auch solche, die nicht unter die minimale Wortlänge fallen). Hab ich mich das verguckt (wahrscheinlicher) oder gibts das bestimmte Regeln ?
Original geschrieben von André-Nam
Die Suche nach dem String "Britney Spears" dagegen nicht. Das macht durchaus Sinn (Schau dir mal Google an). Also ich finde meine "Forderung" gar nicht soo ungewöhnlich.
Das ist dann der Fall (wenn man Spears, Britney nicht finden will sondern Britney Spears) wenn man als Suche "Britney AND Spears" eingibt. Dieses "AND" kann man auch in dem Code als Standard einfügen.
(Ich habe es mal mit "NOT" ausprobiert. Es funzt wunderbar)
Original geschrieben von André-Nam
Aber weiterhin bleiben meine Fragen offen (ich weiß, ich bin ein neugieriger Mensch :o ):
- Kann ich (wenn ja wie) eine Suche nach einem String über einen Index realisieren ?
- Mir ist gerade aufgefallen, dass das vB nicht alle Wörter in die Liste aufnimmt (auch solche, die nicht unter die minimale Wortlänge fallen). Hab ich mich das verguckt (wahrscheinlicher) oder gibts das bestimmte Regeln ?
MfG André-Nam
a) Ja, wie oben beschrieben durch die logischen Operatoren
b) Ich meine Du hättest Dich verguckt (Allerdings, wenn ein Wort vorhanden ist, dann kreiert er es nicht neu).
Lieben Gruß,
Chris.
> Das ist dann der Fall (wenn man Spears, Britney nicht finden
> will sondern Britney Spears) wenn man als Suche "Britney AND Spears" eingibt.
> Dieses "AND" kann man auch in dem Code als Standard einfügen.
> (Ich habe es mal mit "NOT" ausprobiert. Es funzt wunderbar)
Ja klar, das hab ich ja schon und es funzt. Aber das ist es nicht, was ich wollte. Ein anschaulicheres Beispiel:
Wenn ich nach "Herleitung des Gesetzes von Kepler" (nur mal so) suche, finde ich alles, wo diese Wörter auftauchen; sie müssen nicht direkt beisammen sein. Da liegt auch schon das Problem. Es könnten Treffer drinstehen, wo die Herleitung von irgendeines Gesetztes beschrieben wird, und wo Kepler nur mal so nebenbei erwähnt wird. Dieses Dokument ist für mich nicht relevant.
Ich will Dokumente, wo "Herleitung des Gesetztes von Kepler" so auftaucht, wie ich es eingegeben habe ! Nicht ein Dokument, wo die Begriffe womöglich versprengt und zusammenhangslos auftauchen.
Kapiert ?
Das habe ich auch schon vorher kapiert.
Deine Beispiel-Suche wäre z.B. :
"Herleitung AND des AND Gesetzes AND von AND Kepler"
Eine intelligente Suche, der den Wunsch des Users beachtet gibt es noch nicht.
Deine Index-Suchoption mußt Du von den logischen Operatoren im Code so ändern, daß es Deinen Kriterien entspricht.
Aber:
Sollte irgendjemand, irgendwas falsch schreiben funktioniert die ganze Geschichte nicht mehr. Insofern ist eine "Word"-Suche durchaus praktischer. Zumal Du in Deinem Beispiel dann entsprechend auch genau diese Zeichenfolge in dem Beitrag (Datenfeld) haben mußt.
*patsch*
Ach..sorry.
Bei Eingabe von "Herleitung vom Gesetz von Kepler" (OHNE ANFÜHRUNGSZEICHEN !!)
wird die AND Beziehung standartmäßig gesetzt.
Erst wenn man die Anführungszeichen gesetzt werden, wird die Suche nach einem String aktiviert. So ist das bei mir. Hätte ich vielleicht sagen sollen. Ist aber auch Standart bei Suchmaschinen.
> Deine Index-Suchoption mußt Du von den logischen
> Operatoren im Code so ändern, daß es Deinen Kriterien entspricht.
Meinst du jetzt damit, ich muss meine Suche umprogrammieren, um sie meinen Wünschen anzupassen ? :D
Ist mir schon klar - aber du weißt nicht zufällig wie ?
Darum geht es mir doch !!
Wie kann ich das machen.
Die Suche über AND, OR, NOT geht ja.
Dazu suche ich erst die Wordids raus und über die Wordids die Resultate.
Aber wie soll ich aus dem Index komplette Strings herausziehen, da stehen doch nur Wörter drin.
*push* Weiß niemand weiter ? So viele Leute online und keine Antwort :(
Auch wenn ich hier Gefahr laufe, einen Monolog zu halten:
Die Suche mit log. Operatoren hab ich halbwegs hin.
Man muss aber jedes Wort einzeln rauspicken.
Aber wie ich das mit dem String angehe, weiß ich immer noch net.
Kein Plan :(
Na mal schauen, vielleicht läuft die normale Suche ja bald so gut, dass sowas gar nicht nötig wäre.
Hallo,
ich bin es nochmal :)
ich bin bei dem Thema leider immer noch nicht weiter gekommen und habe schon fast alle Hoffnungen aufgegeben.
@Chris (falls du das liest): Schau mal hier (http://www.google.de/advanced_search?hl=de)
Oben findest du die Optionen "mit allen Worten" (das entspricht der AND Verknüpfung), "mit irgendeinem der Wörter" (OR Verknüpfung), "ohne die Wörter" (AND NOT Verknüpfung).
Dann gibst's da noch "mit der genauen Wortgruppe"
Das ist es, was ich meinte.
Verstanden ?
@vB-Entwickler @Profis: Bei Google gehts ja auch und die können auch nicht die gesamten Datenquellen durchsuchen bei den Suchzeiten, oder ? Ich kenne ja nicht google, aber die haben ja auch einen Index (wohl noch noch noch viel komplizierter).
Aber irgendwie muss es doch möglich sein,oder ???
Das Phorum (http://www.phorum.org) hat so eine Suche integriert. Vielleicht hilft es weiter, wenn Du Dich mal in dieses Skript vertiefst.
Hallo Pogo,
ich habe mir das Phorum mal runtergeladen.
Du hast Recht, die Funktionalität hat es; allerdings wird kein Index verwendet, sondern eine normale Abfrage mit spalte LIKE '%Suchwort%'. In dem Fall kann noch nichteinmal der Index auf einem solchen Feld verwendet werden (von MySQL).
Aber möglicherweise habe ich eine Idee:
Für die Benutzer, die den Komfort einer solchen Suche gewohnt sind, könnte man das als optionale Suche anbieten.
Normal die über den Index - und über einen Radio Button die alte Suche :)
mal schauen..
PS: Warum steht bei deinem Beitrag (als Alt Text auf dem vB Zeichen) "Pogo ist online" wenn du nicht in der "Wer ist online Liste aufgeführt" bist ?
vBulletin® v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.