Match Against

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Match Against

    Hallo,

    ich habe ein kleines Problem. Habe folgende Abfrage:

    SELECT id, titeltext, beschreibungtext, keywordtext, quelle, status FROM daten WHERE MATCH (titeltext,beschreibungtext,keywordtext) AGAINST ('$suchwort_auslesen') AND (status = 'freigeschaltet') AND
    (quelle != 'Banner') ORDER BY $suchreihenfolge

    Wenn ich aber nun nach einem Wort mit 3 Zeichen suche, z.B. web dann wird nichts gefunden. Bei Wörter, die 3 Zeichen und weniger haben, da wird nichts gefunden. Wie kann ich das ändern, dass auch nach Wörtern mit 3 Zeichen gesucht wird?


    Mfg
    Zocker

  • #2
    Re: Match Against

    Das kannst du nur dann ändern, wenn du Zugriff auf die Serverkonfiguration hast - http://dev.mysql.com/doc/refman/4.1/...ne-tuning.html

    Aber sinnvoll ist dies idR. nicht - Performance ...
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Aber was ist wenn ich z.B: nach web suche, was mach ich dann?


      Mfg
      Zocker

      Kommentar


      • #4
        Was soll dann sein?

        Es geht mit Defaulteinstellung nicht - wenn du sie ändern kannst, und den Performanceverlust in Kauf nimmst, dann mach das.

        Ansonsten suche nicht nach "web".
        ("Gute", erfolgversprechende Suchanfragen bestehen idR. sowieso nicht aus so kurzen Wörtern.)
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Aber bei jeder normalen Suchmaschine hat man die Möglichkeit nach Wörtern zu suchen, die 3 Zeichen enthalten. Was ist denn das für eine Suchmaschine, wo man nicht nach Wörtern suchen kann, die 3 Zeichen enthalten.

          Also bitte!


          Mfg
          Zocker

          Kommentar


          • #6
            Bitte, wenn du dir selbst sowas programmieren willst, tu dir keinen Zwang an - zwingt dich ja keiner, die Volltextsuche so wie MySQL sie bereitstellt zu nutzen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              du kannst die Länge von gesuchtem Begrif auslesen, und wenn sie kleiner als 4 ist, dann benutze einfach andere SQL befehl zum suchen.
              z.b.s.: regexp, instr oder locate
              Slava
              bituniverse.com

              Kommentar


              • #8
                eine hässliche Variante wäre, die Indexfelder nochmals in einem Suchfeld zu speichern, und dabei die kurzen Worte auf vier Zeichen zu verlängern oder alle Wörter um drei Buchstaben zu verlängern.... killt auch gerade die stopwords...

                zB. update table set suchfeld = "'$beschreibung $titel $keywords'"
                aber vorher $beschreibung, $titel, $keywords aufbereitet haben.
                Alle Wörter um drei Buchstaben verlängern sollte mit preg_replace gehen.

                Warum es mit drei Buchstaben nicht geht? Vielleicht hat Apple/Hypercard/Bill Atkinson immer noch ein Patent auf das Trigramm-Suchen.

                Kommentar


                • #9
                  Alternative zu MATCH AGAINST

                  Guten Abend,

                  ich bin auf der Suche nach einer Alternative für MATCH AGAINST. Denn wenn ich nach Wörtern wie web oder net suchen möchte, geht es ja nicht.

                  Gibt es da welche?


                  Mfg
                  Zocker

                  Kommentar


                  • #10
                    Re: Alternative zu MATCH AGAINST

                    Original geschrieben von Zocker
                    ... Denn wenn ich nach Wörtern wie web oder net suchen möchte, geht es ja nicht ...
                    Das kommt wohl eher darauf an wie mächtig Du bist ...
                    Code:
                    [mysqld]
                    ft_min_word_len=3
                    ... restart ...
                    Code:
                    REPAIR TABLE tbl_name QUICK;
                    und auch web oder net funktionieren ...
                    carpe noctem

                    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                    Kommentar


                    • #11
                      Re: Alternative zu MATCH AGAINST

                      Original geschrieben von Zocker
                      Denn wenn ich nach Wörtern wie web oder net suchen möchte, geht es ja nicht.
                      Bitte?




                      LIKE "%web%" ?!

                      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                      Wie man Fragen richtig stellt

                      Kommentar


                      • #12
                        Hallo,

                        mit LIKE belaste ich nur unnötig den Server und das führt zu längeren Ladezeiten.

                        Habe leider keinen Zugriff Änderungen bei mysqld durchzuführen.


                        Mfg
                        Zocker

                        Kommentar

                        Lädt...
                        X