Ergebnis 1 bis 5 von 5
  1. #1
    dertypdernixkan ist offline Tripel-As
    registriert
    31-05-2013
    Beiträge
    194

    Suchtext in MySQL bearbeiten

    Moinsen


    Folgendes Problem: meine Volltextsuche soll Sätze aus der Datenbank bereits gekürzt ausgeben. Teilweise funktioniert es auch aber eben nur teilweise.


    Bsp: der Text in der DB


    "Das ist wieder ein Test um zu testen! Diesmal wird alles für die Volltextsuche fertig gemacht... P.S. hier noch etwas Musik https://soundcloud.com/user2954159"

    Die Suche ist Case Insensitive, Zeilenumbrüche werden erst später durch PHP entfernt.


    der Suchtext


    "wird alles für die"


    SQL


    HTML-Code:
    SUBSTRING_INDEX(SUBSTRING(`posts`.`post` FROM LOCATE('".$suchwort."', `posts`.`post`)) , ' ', 10)
    dieser gibt


    "wird alles für die Volltextsuche fertig gemacht... P.S. hier noch etwas"


    aus. Soweit ist das Okay, nur hätte ich gerne 3-4 Wörter mehr am Anfang.


    Also habe ich es mit REVERSE versucht


    HTML-Code:
    REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING(`posts`.`post` FROM LOCATE('".$suchwort."', `posts`.`post`))) , ' ', -10))
    dieser gibt


    "wird alles für die Volltextsuche fertig gemacht... P.S. hier noch etwas"


    also kein Unterschied. Also habe ich mir noch einen zurecht gefummelt


    HTML-Code:
    SUBSTR(`posts`.`post`, LOCATE('".$suchwort."', `posts`.`post`) - 20, LOCATE('".$suchwort."', `posts`.`post`) + 20)
    dieser gibt


    "testen! Diesmal wird alles für die Volltextsuche fertig gemacht..."


    dies ist soweit okay! Nur wenn ich jetzt das Suchwort in "wieder ein Test" ändere, gibt er folgendes aus:


    "ser2954159"


    Kurzum, ich bin nicht in der Lage, das Suchwort/Satz + 3-4 Wörter am Anfang und am Ende auszugeben.


    Kann mir da jemand helfen?


    Warum ich das mit SQL haben will? Weil es performanter ist wenn ich 50 Datensätze pro Seite ausgebe die bereits durch SQL/MySQL bearbeitet wurden als wenn ich das anschließend noch mit PHP mache.

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.664

    AW: Suchtext in MySQL bearbeiten

    Du musst bei dem ersten Index noch prüfen, ob dieser auch wirklich nicht kleiner als 0 ist. Leider funktioniert die MAX Funktion nicht so, wie in anderen Sprachen, deswegen muss man da ein bisschen kreativ sein:
    Code:
    SUBSTR(`posts`.`post`, (ABS(LOCATE('".$suchwort."', `posts`.`post`) - 20) + LOCATE('".$suchwort."', `posts`.`post`) - 20) / 2, LOCATE('".$suchwort."', `posts`.`post`) + 20)

  3. #3
    dertypdernixkan ist offline Tripel-As
    registriert
    31-05-2013
    Beiträge
    194

    AW: Suchtext in MySQL bearbeiten

    @kkapsner

    nein, das funktioniert auch nicht, ich habe es vorläufig über einer preg_match-funktion gelöst, ist zwar noch weit weg von dem was ich will aber sie macht das nötigste, sowohl bei kürzeren als auch bei längeren texten.

  4. #4
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.664

    AW: Suchtext in MySQL bearbeiten

    Hm... bei meinen Tests hat's funktioniert... egal.

    Zitat Zitat von dertypdernixkan Beitrag anzeigen
    Weil es performanter ist
    Da wäre ich mir nicht so sicher. Vergleiche beide Ansätze, dann hast du belastbare Zahlen.

  5. #5
    dertypdernixkan ist offline Tripel-As
    registriert
    31-05-2013
    Beiträge
    194

    AW: Suchtext in MySQL bearbeiten

    Ja es hat ja auch funktioniert, nur eben dann, wenn der Text eine bstimmte Länge hat. ist er zu kurz oder zu lang dann versagt es.

    Da wäre ich mir nicht so sicher. Vergleiche beide Ansätze, dann hast du belastbare Zahlen.
    Ja stimmt, die Aussage von mir war so aus dem Stegreif, SQL ist schneller, ich muss weniger Text durch PHP bearbeiten/prüfen lassen -> sollte schneller und damit performanter sein.

Ähnliche Themen

  1. Elementknoten bearbeiten
    Von zenten im Forum JavaScript
    Antworten: 6
    Letzter Beitrag: 16-07-2009, 14:53
  2. XML Datei bearbeiten
    Von shanxp im Forum Serverseitige Programmierung
    Antworten: 2
    Letzter Beitrag: 15-04-2008, 14:13
  3. mit PHP dateien bearbeiten
    Von Spezialist im Forum Serverseitige Programmierung
    Antworten: 9
    Letzter Beitrag: 15-03-2003, 09:11
  4. TD bearbeiten
    Von ABNetworks.DE im Forum JavaScript
    Antworten: 7
    Letzter Beitrag: 21-01-2003, 14:16
  5. *.swf bearbeiten?
    Von Marlboro im Forum Flash
    Antworten: 3
    Letzter Beitrag: 08-11-2000, 14:56

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •