Programmieren einer Vergleichssuchmaschine

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

  • Programmieren einer Vergleichssuchmaschine

    Hallo!

    Ich bin neu hier und habe gleich folgende spannende Fragen, die mir bisher keiner beantworten konnte:

    Ich programmiere so etwas ähnliches wie einen Preisvergleich, wobei Kunden/Shops Ihre Kataloge per CSV Datei bereitstellen.
    Für mich tauchen jetzt folgende Probleme auf:

    1. Angenommen, jemand sucht nach "Blauer Unterhose Ultima von XYZ". Jetzt haben meinetwegen 8 Shops genau dieses Produkt im Shop. Allerdings kann das Produkt in jedem Shop anders heißen, z.B. "Ultima Unterhose", "XYZ Unterhose Ultima Blau", etc.
    Als Ergebnis möchte ich jedoch nur ein einziges Produkt liefern und dann darauf verweisen, dass 8 Shops dieses Produkt im Angebot haben. Wie lässt sich das am besten realisieren?
    Mein Ansatz war bisher, das ganze über eindeutige EAN oder ISBN Nummern laufen zu lassen, d.h. "liefere mir das Ergebnis mit der höchsten Relevanz und zähle alle Shops, die auch das Produkt anhand der EAN haben"
    Dabei ist das Problem natürlich, dass ich nicht weiß, ob jeder Shop das EAN System verwendet.

    2. Welche Art der MySQL-Volltextsuche ist für so eine Suchmaschine sinnvoll? (BOOLEAN oder nicht?)
    Dabei taucht wieder ein Problem auf:
    Angenommen, ich besitze eine Hauptkategorie "Teddybären" auf dem Vergleichsportal. Nun beinhalten also viele Produkte
    (sagen wir 10% aller Produkte des Shops) den Begriff "Teddybären" im Titel oder in der Beschreibung.
    Wenn jetzt jemand nach "Steiff Teddybär" sucht, so sollen natürlich nur oder zumindest als erstes die Teddybären von Steiff aufgelistet werden.
    Irgendwie erhalte ich für diese Anfrage (nicht IN BOOLEAN MODE) aber erst andere Teddybär-Ergebnisse, bevor die Steiff Teddybären gelistet werden (nach Relevanz sortiert).
    Benutze ich hingegen den BOOLEAN MODE, so erhalte ich irgendwie gar keine Sortierung nach Relevanz, da ja nur entschieden wird, ob ein Produkt dazugehört oder nicht.

    Hat da irgendjemand Vorschläge/Ideen?

  • #2
    Ich würde zu BOOLEAN raten. Leß dir mal die USerkommentare auf http://dev.mysql.com/doc/refman/5.0/...t-boolean.html durch. Du musst das Ergebnis nach der Score die das Boolean-Match zurück gibt sortieren.

    Ausserdem solltest du deinen Suchsatz entsprechend aufbereiten.

    Aus "steiff teddybär braun" wird "+steiff* +teddybär* +braun*". Zu beachten ist hierbei das für mySQL das "ä" ein "a" ist und das so nur die Wortanfänge durchsucht werden können.

    Die Boolean-Search kann es leider nicht besser. Bei einer Suche nach "creator" wird zum Beispiel "pdfcreator" nicht gefunden...

    Kommentar


    • #3
      Danke.

      Hat irgendjemand eine Lösung für das erste Problem?

      Kommentar


      • #4
        Wie weit bvist du mit dem Script? Schreib mir Bitte mal eien PM kann dich hier komischerweis nicht anschreiben.

        Kommentar


        • #5
          Original geschrieben von schnikemike
          Wie weit bvist du mit dem Script? Schreib mir Bitte mal eien PM kann dich hier komischerweis nicht anschreiben.
          Kann er auch nicht - das PM-System ist einer begrenzten Anzahl von Usern vorbehalten.

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

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

          Kommentar


          • #6
            schade . hm

            Also muss ich mich wohl hier erst zum Ritter der Kopfnuss schlagen lassen.

            Kommentar


            • #7
              das erste problem könnte man vielleicht mit explode() lösen. Dann müsstest du die mysql-abfrage so machen das nur einträge gesucht werden wo sämtliche dieser wörter vorkommen, die reinfolge aber egal...

              Kommentar


              • #8
                Original geschrieben von schnikemike
                schade . hm

                Also muss ich mich wohl hier erst zum Ritter der Kopfnuss schlagen lassen.
                ... oder im Profil eine gültige E-Mail-Adresse eintragen.

                Kommentar


                • #9
                  OffTopic:

                  Original geschrieben von pekka
                  ... oder im Profil eine gültige E-Mail-Adresse eintragen.
                  da unterliegst du scheinbar n irrtum. ich habe schon immer ne gültige email-adresse im profil. dennoch kann ich den pm-knopp nicht nutzen.

                  vermisse die funktion hier leider auch. warum ists eigentlich so?

                  **********
                  arkos
                  **********

                  Kommentar


                  • #10
                    da unterliegst du scheinbar n irrtum. ich habe schon immer ne gültige email-adresse im profil. dennoch kann ich den pm-knopp nicht nutzen.
                    *lol* du glaubst doch nicht, dass dadurch die funktion freigeschaltet wurde. ABER dann kann man sich emails schreiben. Übrigens viel universeller als PNs.

                    Back2Topic.

                    1) du brauchst ne eindeutige ID, so viel steht fest. Und bevor du den Shops dein eigenes ID-System aufzwingen willst, solltest du eben auf das weit verbreitetste setzen: EAN. Wers nicht hat, hat Pesch und wird auch nicht gelistet. So wirds deine Konkurrenz auch machen: Guck doch einfach ab und versuch nicht das Rad neu zu erfinden.

                    Kommentar

                    Lädt...
                    X