chal: MySQL Volltextsuche spinnt

Hi Leute,

habe ein Problem mit meiner MySQL-Volltextsuche.
Sobald das Suchwort in mehr als 3 Datensätzen gefunden wird spuckt MySQL 0 Treffer aus. Keine Fehlermeldung oder so, einfach keine Datensätze gefunden die matchen. Ich benutze die Version 4.0.20a.

Die Suche geht über 3 Felder einer Tabelle und wurde so angelegt:
FULLTEXT (spalte1,spalte2,spalte3);

Die Abfrage dazu sieht so aus:
SELECT * FROM tabelle1 WHERE MATCH (spalte1,spalte2,spalte3) AGAINST ('suchwort')

Ich denke die Syntax ist korrekt, zumal es ja auch funktioniert solange das Suchwort in nicht mehr als 3 Datensätzen steht. Hat irgendjemand dazu eine Idee? Please help!!!

Schöne Grüße
chal

  1. hi,

    Sobald das Suchwort in mehr als 3 Datensätzen gefunden wird spuckt MySQL 0 Treffer aus.

    du solltest hier nicht so groß rumtönen - sonst müsste ich ja eher annehmen dass du spinnst anstatt mysql, weil du dich offenbar nicht im manual informiert hast, was es mit "stopwords" auf sich hat.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. hi,

      du solltest hier nicht so groß rumtönen

      ähh... wieso groß rumtönen? Meinst du das kleine Wörtchen spinnt? Es tut mir Leid wenn ich dir oder anderen damit zunahe getreten bin. Und natürlich, trotz dieses Wortes glaube ich ganz fest daran das der Fehler bei mir liegt. Deswegen bitte ich ja um Hilfe.

      Aber danke für deine _freundliche Antwort.
      Stopwords sind, korrigier mich bitte, Worte aus einer Liste von Worten die in Texten extrem häufig auftreten können, z.b. 'the'. Bei meinem Problem handelt es sich _nicht um solche Worte. Ein Testwort ist z.b. 'Computertomographie'. Das dürfte kaum ein stopword sein.

      Grüße
      chal

      1. du solltest hier nicht so groß rumtönen
        ähh... wieso groß rumtönen? Meinst du das kleine Wörtchen spinnt? Es tut mir Leid wenn ich dir oder anderen damit zunahe getreten bin. Und natürlich, trotz dieses Wortes glaube ich ganz fest daran das der Fehler bei mir liegt. Deswegen bitte ich ja um Hilfe.

        Aber danke für deine _freundliche Antwort.
        Stopwords sind, korrigier mich bitte, Worte aus einer Liste von Worten die in Texten extrem häufig auftreten können, z.b. 'the'. Bei meinem Problem handelt es sich _nicht um solche Worte. Ein Testwort ist z.b. 'Computertomographie'. Das dürfte kaum ein stopword sein.

        Stimmt, Dein Problem hat nichts mit Stopwords zu tun, wie es wahsaga behauptet.
        Vielmehr ist es ein Relevanzproblem:
        http://dev.mysql.com/doc/mysql/en/Fulltext_Search.html
        Man beachte den Satz: "The search result is empty because the word ``MySQL'' is present in at least 50% of the rows"

        Gruß
        Reiner

        1. hi,

          Stimmt, Dein Problem hat nichts mit Stopwords zu tun, wie es wahsaga behauptet.

          doch, hat es.

          Vielmehr ist es ein Relevanzproblem:
          http://dev.mysql.com/doc/mysql/en/Fulltext_Search.html
          Man beachte den Satz: "The search result is empty because the word ``MySQL'' is present in at least 50% of the rows"

          und wenn man da auch noch die nächste zeile liest, steht dort was?
          'As such, it is effectively treated as a stopword.'

          gruß,
          wahsaga

          --
          "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
          1. hi wahsaga,

            und wenn man da auch noch die nächste zeile liest, steht dort was?
            'As such, it is effectively treated as a stopword.'

            Ja, das stimmt, aber warum hast du das nicht gleich gesagt? Dieser thread wäre dann erheblich kürzer ausgefallen.

            By the way, da steht auch:
            '... and this model may sometimes produce bizarre results.'
            Das könnte man auch als 'spinnen' bezeichnen. :-)

            aber nichts für ungut, alles meine Schuld, ich hätte besser lesen müssen.
            Asche auf mein Haupt.

            Grüße,
            chal

        2. Man beachte den Satz: "The search result is empty because the word ``MySQL'' is present in at least 50% of the rows"

          Oh jaaaa, das hatte ich überlesen. Hab mit meiner TestDB wohl zu kleine Brötchen gebacken (zuwenig Datensätze).
          Danke dir Reiner!!!

          Grüße
          chal

    2. Hallo wahsaga,

      Sobald das Suchwort in mehr als 3 Datensätzen gefunden wird spuckt MySQL 0 Treffer aus.

      du solltest hier nicht so groß rumtönen - sonst müsste ich ja eher annehmen dass du
      spinnst anstatt mysql, weil du dich offenbar nicht im manual informiert hast, was es mit
      "stopwords" auf sich hat.

      Was soll denn dieses Posting? Das halte ich doch fuer sehr unangebracht.

      Grüße,
       CK

      --
      Descartes sagte: 'Ich denke, also bin ich.' Ich hingegen sage: 'Ich denke nicht, also bin ich.'
      http://wwwtech.de/
      1. hi,

        Was soll denn dieses Posting? Das halte ich doch fuer sehr unangebracht.

        ich mag es nicht besonders, wenn leute sich über die von ihnen verwendete software mokieren (beispielsweise sie als "spinnend" bezeichnen), nur weil sie deren funktionsweise noch nicht (gut genug) verstanden haben.
        um ihn darauf hinzuweisen, habe ich den titel derart gewählt. wohlgemerkt als vorsichtige frage, nicht als behauptung.

        das verhalten von mysql in diesem falle ist absolut das gewünschte, und wenn chal sich mal im manual zum thema fulltext search informiert hätte, hätte er das auch wissen sollen.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. Hallo wahsaga,

          Was soll denn dieses Posting? Das halte ich doch fuer sehr unangebracht.

          ich mag es nicht besonders, wenn leute sich über die von ihnen verwendete software
          mokieren (beispielsweise sie als "spinnend" bezeichnen), nur weil sie deren funktionsweise
          noch nicht (gut genug) verstanden haben.

          Da bist du dann doch ein wenig sehr empfindlich. Ich haette aehnliches schreiben koennen.
          Eine derartige Reaktion finde ich nicht angebracht.

          um ihn darauf hinzuweisen, habe ich den titel derart gewählt. wohlgemerkt als vorsichtige
          frage, nicht als behauptung.

          Der Unterschied ist marginal bis nicht vorhanden da er die gleiche Wirkung wie eine Aussage
          hat, bietet aber eine gute Ausrede. Mal abgesehen davon, dass du es nicht moegen _musst_,
          wenn sich jemand ueber Software aufregt, es ist sein gutes Recht. Wenn es dich stoert,
          ignoriere es.

          das verhalten von mysql in diesem falle ist absolut das gewünschte, und wenn chal sich
          mal im manual zum thema fulltext search informiert hätte, hätte er das auch wissen sollen.

          Nein, das ist nun wirklich nicht etwas, was einem auf Anhieb auffallen muesste. Um den
          Fehler darin zu erkennen ist schon eine ziemlich genaue Analyse notwendig, die auch mich
          entsprechend viel Zeit gekostet haette.

          Nimm dich doch bitte einfach ein bisschen zurueck. EOD fuer mich.

          Grüße,
           CK

          --
          Mit einem Windhauch kannst du das Feuer loeschen. Mit einem Windhauch kannst du das Feuer entfachen.
          http://wwwtech.de/
          1. hi,

            Da bist du dann doch ein wenig sehr empfindlich.

            "dito" würde ich sagen, wenn du meine formulierung diesbezüglich nicht magst.

            aber gut, ich entschuldige mich hiermit für die "spinnt"-formulierung bei chal; hätte gar nicht erwartet, dass die so ernst genommen wird.

            Mal abgesehen davon, dass du es nicht moegen _musst_,
            wenn sich jemand ueber Software aufregt, es ist sein gutes Recht.

            m.E. nein, nicht aus _so_ einem grund.

            Nein, das ist nun wirklich nicht etwas, was einem auf Anhieb auffallen muesste.

            es steht bereits auf der einführungsseite zur volltext-suche im manual. ich würde doch voraussetzen, dass man diese liest, wenn man die volltextsuche einsetzen will.

            Um den Fehler darin zu erkennen ist schon eine ziemlich genaue Analyse notwendig, die auch mich entsprechend viel Zeit gekostet haette.

            es ist kein "fehler", sondern gewünschtes verhalten.
            wenn man aber nicht mal die einführung zur thematik liest, ist es wenig verwunderlich, wenn tatsächliches und "erwartetes" verhalten auseinanderklaffen.

            gruß,
            wahsaga

            --
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
          2. Servus,

            mag sein, dass er ein wenig übetrieben hat der whasaga.
            Im Grunde hat er aber recht.
            -> Wenn man an Projekten arbeitet, und dann ein unwissender darüpber schimpft, was für nen misst das sei, obwohl er nicht in der lage war einfach die Doku zu lesen.
            Tja was soll man dazu noch sagen?
            Sorry aber eine gewisse Grundvorraussetzung sollte schon erfüllt sein, wenn man morgens aus dem Bett aufsteht.

            Nunja egal. Ich meine ja nur.
            In diesem Fall war whasage vieleicht etwas überempfingdlich.
            -> Mit dem falschen Fuss aufgestanden?
            Kommt vor.

            Aber im Grunde hat er Recht.

            Gruss Matze

            1. Verzeih,

              hab das h mit dem a vertauscht.
              Meinte natürlich den wahsaga.

              Gruss Matze

            2. Hi,

              mag sein, dass er ein wenig übetrieben hat der whasaga.
              Im Grunde hat er aber recht.
              -> Wenn man an Projekten arbeitet, und dann ein unwissender darüpber schimpft, was für nen misst das sei, obwohl er nicht in der lage war einfach die Doku zu lesen.

              hat jemand über MySQL geschimpft? Ich meine nicht!
              Wenn hier eine Frage/ein Subject damit beginnt:
              "... spinnt" deute ich das eher so, daß es nicht funktioniert, wie es soll. Warum auch immer. Wenn es so gemeint wäre, daß es "MIST" sei, würde sich der Fragende wohl gar nicht mehr damit großartig beschäftigen.

              Tja was soll man dazu noch sagen?
              Sorry aber eine gewisse Grundvorraussetzung sollte schon erfüllt sein, wenn man morgens aus dem Bett aufsteht.

              Nunja egal. Ich meine ja nur.
              In diesem Fall war whasage vieleicht etwas überempfingdlich.
              -> Mit dem falschen Fuss aufgestanden?
              Kommt vor.

              Aber im Grunde hat er Recht.

              Hört sich schizophren an! Hat er nun Recht oder hat er überempfindlich reagiert?

              Viele Grüße,
              Reiner

              1. Servus,

                Es hört sich nur "schizophren an" weil
                weil Du es eventuell so "schizophren" interpretierst?

                Gruss Matze

        2. Hi,

          Was soll denn dieses Posting? Das halte ich doch fuer sehr unangebracht.

          ich mag es nicht besonders, wenn leute sich über die von ihnen verwendete software mokieren (beispielsweise sie als "spinnend" bezeichnen), nur weil sie deren funktionsweise noch nicht (gut genug) verstanden haben.
          um ihn darauf hinzuweisen, habe ich den titel derart gewählt. wohlgemerkt als vorsichtige frage, nicht als behauptung.

          was Du magst oder nicht, interessiert hier rel. wenig!
          Dein Posting war völlig deplatziert und brachte den Fragenden in keinster Weise weiter.
          Und: es handelt sich eben nicht um ein Stopword, jedenfalls würde dieses Stichwort jemanden, der mit MySQL nicht vertraut ist, in keinster Weise weiter bringen. Daß es sich zur Laufzeit wie ein Stopwort verhält, ist was anderes.

          das verhalten von mysql in diesem falle ist absolut das gewünschte, und wenn chal sich mal im manual zum thema fulltext search informiert hätte, hätte er das auch wissen sollen.

          Besser wäre vielmehr gewesen, Du hättest ihn auf eine Info verlinkt oder ganz einfach nichts gesagt!

          Viele Grüße,
          Reiner

          1. hi,

            Dein Posting war völlig deplatziert und brachte den Fragenden in keinster Weise weiter.

            wieso nicht?
            das in diesem zusammenhang relevante stichwort wurde doch genannt.

            Und: es handelt sich eben nicht um ein Stopword, jedenfalls würde dieses Stichwort jemanden, der mit MySQL nicht vertraut ist, in keinster Weise weiter bringen.

            um "stopword" in die suchfunktion unter http://dev.mysql.com/doc/mysql/de einzugeben, muss man sich nicht mit mysql auskennen.

            das führt sehr schnell zu der seite, die das verhalten erklärt - und in diesem zusammenhang auch von einem "stopword" redet.

            Daß es sich zur Laufzeit wie ein Stopwort verhält, ist was anderes.

            _genau das_ ist hier die ursache des "problems".

            Besser wäre vielmehr gewesen, Du hättest ihn auf eine Info verlinkt

            soll ich noch'n tee für dich kochen ...?

            gruß,
            wahsaga

            --
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
      2. Hallo,

        Was soll denn dieses Posting? Das halte ich doch fuer sehr unangebracht.

        ohne Smiley halte ich es in diesem Fall auch für missverständlich. Obwohl ich eigentlich kein großer Fan von unnötigen Smileys in Postings bin - es sei denn, sie stammen von Chräcker (und bei ihm gehören sie unbedingt dazu) :-)

        Gruß,
        _Dirk

    3. Abend,

      du solltest hier nicht so groß rumtönen -

      ach, kleinmeister wahsaga bei ihrer täglichen arbeit..

      Indigo

      1. Hallo Indigo,

        du solltest hier nicht so groß rumtönen -
        ach, kleinmeister wahsaga bei ihrer täglichen arbeit..

        bei _seiner_ täglichen arbeit, wenn ich bitten darf ;-)

        Gruss,
        Daniel