MySQL: Prozedurale Anzeige der Relevanz eines Suchergebnisses



  • Hi,

    ich hab mir eine Volltext-Suchemaschine gebastelt und lasse nach Relevanz sortieren. Laut der MySQL-Doku ist dieser Wert eine nicht negative Fließkommazahl, aber da liegt auch mein Problem.

    Viele Webseiten zeigen die Relevanz eines Treffers prozedural an. Ich hab da jetzt aber immer so eine Kommazahl stehen, die bei mir meistens zwischen 1-3 liegt. Das muss man mit dem Relevanz-Wert von Mysql tun, damit man einen prozeduralen hat?

    mfg!



  • meinste prozentual?
    kannst ein wenig augenwischen, indem du den wert mit 37,25 multiplizierst.
    oder schlimmer, du suchst den kleinsten und größten wert und rechnest (wert-kleinster)*100/(größter-kleinster).



  • Ups, prozentural, natürlich. 🙂

    Augenwischen entfällt, der Wert hängt nämlich von vielen Faktoren ab. Ich hab probeweise auch mal einen Eintragstext komplett ins Suchfeld kopiert, das Ergebnis war irgend ein Wert um die 230,xxx.
    Das maximal mögliche ist das aber trotzdem nicht, weil der Wert auch noch davon abhängt, wie oft jedes einzelnes Wort im Index vorkommt und was weiß ich noch.

    Deine Formel sieht da schon besser aus, aber damit ich mit der rechnen kann, müsste ich erst alle Werte durchgehen, um den minimalen und maximalen Relevanzwert der aktuellen Suchanfrage zu ermitteln.

    Ich hab auch mal ne Beispielanfrage durchgeführt, zwei Treffer:
    1. Relevanz: 0.60909244387936 | nach deiner Formel exakt 100%
    2. Relevanz: 0.579796868911152 | nach deiner Formel exakt 0%

    Oder hab ich da vielleicht noch was falsch verstanden?



  • Suchmaschine schrieb:

    Augenwischen entfällt, der Wert hängt nämlich von vielen Faktoren ab. Ich hab probeweise auch mal einen Eintragstext komplett ins Suchfeld kopiert, das Ergebnis war irgend ein Wert um die 230,xxx.
    Das maximal mögliche ist das aber trotzdem nicht, weil der Wert auch noch davon abhängt, wie oft jedes einzelnes Wort im Index vorkommt und was weiß ich noch.

    im prinzip isses die summe über alle suchwörter aus dem produkt von worthäufigkeit im artikel und wortseltenheit überhaupt.

    [/quote]Deine Formel sieht da schon besser aus,[/quote]
    sie ist die gleiche augenwischerei. ich hab nur ne formel gebaut, die dem schlechtestm ergebnis 0% gibt und dem besten 100% und die anderen dazwischen macht.

    aber damit ich mit der rechnen kann, müsste ich erst alle Werte durchgehen, um den minimalen und maximalen Relevanzwert der aktuellen Suchanfrage zu ermitteln.

    jup.

    Ich hab auch mal ne Beispielanfrage durchgeführt, zwei Treffer:
    1. Relevanz: 0.60909244387936 | nach deiner Formel exakt 100%
    2. Relevanz: 0.579796868911152 | nach deiner Formel exakt 0%

    mhh, das sieht aber doof aus. dann lieber
    anzeige=relevanz/größerelevanz/100
    das ergibt dann
    1. Relevanz: 0.60909244387936 | nach augenwisch3 Formel exakt 100%
    2. Relevanz: 0.579796868911152 | nach augenwisch3 Formel etwa 95%
    das sieht noch ein wenig netter aus. aber die beste relevanz pro suche ist immer 100%. und das ist eigentlich mist.

    wir sollten eine formel basteln, die alle relevanzen auf das intervall 0 bis 100 abbilden kann und unabhängig von den anderen relevanzen dieser suche ist.

    da ich keine obergrenze für relevanzwerte kennt, aber eine untergrenze, vielleicht läßt sich mit dem kehrwert was schaukeln? nee, die untergrenze ist 0 und der kehrwert von 0 ist wieder zu groß.
    und 1/(relevanz+1)?
    jo

    formel augenwisch4: anzeige=100-100/(relevanz+1)
    relevanz	anzeige
    0	0
    0,2	16
    0,4	28
    0,6	37
    0,8	44
    1	50
    1,2	54
    1,4	58
    1,6	61
    1,8	64
    2	66
    2,2	68
    2,4	70
    2,6	72
    2,8	73
    3	75
    3,2	76
    3,4	77
    3,6	78
    3,8	79
    4	80
    4,2	80
    4,4	81
    4,6	82
    4,8	82
    5	83
    

    die sieht recht halbwissenschaftlich aus. sie macht aus 0 relevant auch 0 anzeige. und je größer die relenaz, desto größer die anzeige.



  • 🙂

    Das ist zwar alles schön und gut, aber mit augenwisch4 ist es nahezu unmöglich, 100% zu erreichen, selbst wenn MySQL einen Relevanz-Wert von über 1000 zurückliefert, läge man mit der Formel noch irgendwo bei 99,9.

    Wie funkt das wohl bei der Wikipedia z.b.?
    Da gefallen mir die Werte immer ganz gut und ich habe oft 100% Relevanz.

    Und wenn man nen niedrigeren Wert bekommt, war die Suche eh ein Misserfolg, weil nichts genau dem gesuchten entsprach, so würde das jedenfalls *vermutlich* der durchschnittliche Gelegenheitssurfer einschätzen.



  • Keine Vorschläge mehr? 😞


Log in to reply