Fulltext Such-Problem

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

  • Fulltext Such-Problem

    Hi,

    bin momentan dran eine suche für eine Software-Datenbank zu schreiben.

    Ich habe mir gedacht dazu die Boolsche Volltextsuche zu benutzen, falls da einer ne andere Idee hat, her damit.
    http://dev.mysql.com/doc/mysql/en/fulltext-boolean.html

    Meine Query lautet
    PHP-Code:
    select *
    from software 

    WHERE MATCH
    (bezeichnung)
    AGAINST ('+pdf +creator' IN BOOLEAN MODE)

    ORDER BY bezeichnung 
    Brav bringt diese Suche auch den "PDF-Creator" zum Vorschein. Nur leider nicht den "PDFCreator".

    Beide sind in der Datenbank - wo liegt mein Denkfehler?

  • #2
    In der Doku reden die immer von words, könnte sein, dass PDF-Create zwei Wörter sind, schließlich ist ja ein non-word-character dazwischen (wie auch bei regulären ausdrücken)
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Re: Fulltext Such-Problem

      'apple*'

      Find rows that contain words such as “apple”, “apples”, “applesauce”, or “applet”.
      scheinbar trennt mysql beim - das Wort, aber du suchst ja bei pdfcreator nach EINEM Wort...mach bei jedem Suchwort vorne und hinten n Sternchen dran (was wohl nicht sehr performant ist...) oder lass den User Sternchen machen!

      OffTopic:
      [edit]wozu poste ich überhaupt -.-

      OffTopic:
      die 2. jedes Mal wenn ich neu lade kommen neue Posts , schlimm schlimm XD

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

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

      Kommentar


      • #4
        Re: Fulltext Such-Problem

        Original geschrieben von prego
        Brav bringt diese Suche auch den "PDF-Creator" zum Vorschein. Nur leider nicht den "PDFCreator".
        der index einer volltext-suche basiert m.W. auf ganzen wörtern.

        siehe vorletzte beispiel auf der von dir verlinkten seite:
        'apple*'

        Find rows that contain words such as “apple”, “apples”, “applesauce”, or “applet”.
        volltext-suche nach 'apple' hingegen würde keines von diesen wörtern finden.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          * dahinter, also '+pdf* +creator*' hab ich auch schon versucht - leider fehlt auch in diesem Result der "pdfcreator" wieder.

          * davor macht wenig Sinn, weil ja damit alles gefunden wird.

          An asterisk is the truncation operator. Unlike the other operators, it should be appended to the word.
          Ausserdem kann ich ja schelcht für diesen einen Sonderfall optimieren und später möchte ich ja auch noch durch mehrere Spalten rennen - bezeichnung, beschreibung, usw...
          Danke trotzdem.

          Kommentar


          • #6
            Das mit dem Index auf Wörter kann richtig sein, das würde aber heißen das es im prinzip nicht möglich ist, den pdfcreator mit "pdf +creator" zu finden... oder? *denk*

            Kommentar


            • #7
              Original geschrieben von prego
              Das mit dem Index auf Wörter kann richtig sein, das würde aber heißen das es im prinzip nicht möglich ist, den pdfcreator mit "pdf +creator" zu finden... oder? *denk*
              nein, eigentlich nicht, weil creator nicht als einzelnes Wort vorhanden ist!!!
              Du müsstest schon mit dem Sternchen was machen...

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

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

              Kommentar


              • #8
                Wie schon geschrieben '+pdf* +creator' findet nur den "pdf-creator" nicht aber den "pdfcreator".

                Eine Suche nach '+pdf*' findet natürlich den "pdfcreator" aber auch den "pdfmailer" und "pdfmoto" - usw.

                Google die blöde Kuh kann das..... *grmpf*

                Kommentar


                • #9
                  Original geschrieben von prego
                  Wie schon geschrieben '+pdf* +creator' findet nur den "pdf-creator" nicht aber den "pdfcreator".

                  Eine Suche nach '+pdf*' findet natürlich den "pdfcreator" aber auch den "pdfmailer" und "pdfmoto" - usw.

                  Google die blöde Kuh kann das..... *grmpf*
                  also wenn MySQL die Wort einzeln sieht, dann hast du keine Möglichkeit pdfcreator und pdf-creator mit diesem Suchstring zu finden, denn +pdf* findet nur die Sachen, bis Ende eines Wortes, wenn das Wort an Leerzeichen UND am - zu Ende ist, kannste's vergessen -.-

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

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

                  Kommentar


                  • #10
                    Misst....

                    noch irgendwelche Ideen, wegen mir auch nen anderer Ansatz....

                    Kommentar


                    • #11
                      Original geschrieben von prego
                      Misst....

                      noch irgendwelche Ideen, wegen mir auch nen anderer Ansatz....
                      du kannst nur den "+pdf* +creator" nehmen. Das Ergebnis wird ja nach Rangfolge sortiert (also das wo beide Worte drin vor kommen zuerst!), was besseres fällt mir momentan auch nicht ein (außer Mysql umschreiben, sodass - ein Teil des Wortes ist XD~)

                      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
                        Ok, dann müssen eben die Redakteure in die Beschreibung "This is a creator for PDF" reinschreiben - dann wirds auch gefunden....

                        Kommentar


                        • #13
                          Original geschrieben von prego
                          Ok, dann müssen eben die Redakteure in die Beschreibung "This is a creator for PDF" reinschreiben - dann wirds auch gefunden....
                          das geht auch ^^....oder du ersetzt die - durch " ", ist ja meißtens nicht schlimm der Unterschied!

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

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

                          Kommentar


                          • #14
                            Original geschrieben von ghostgambler
                            du kannst nur den "+pdf* +creator" nehmen. Das Ergebnis wird ja nach Rangfolge sortiert (also das wo beide Worte drin vor kommen zuerst!)
                            in "PDFCreator" kommt das zweite wort creator aber gar nicht vor ...
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              wenn ich dich richtig verstehe, wahsaga, meinst du wegen Groß- und Kleinschreibung... oder?
                              Keep in mind that although MATCH() AGAINST() is case-insensitive

                              Kommentar

                              Lädt...
                              X