Ich hab mich jetzt damit beschäftigt und festgestellt, dass wir aneinander vorbeigeredet haben...
Es gibt nämlich meines erachtens 3 Quellen nach denen die Wort-Wolke aufgebaut werden kann.
1. Häufigste Wörter im Suchindex
--------------------------------------
Schlechte Lösung, da alle unnützen Wörter wie "den", "das", "ich", "als" usw usw mit aufgenommen werden.
Das zu Filtern wäre Wahnsinn...
2. Häufigste Gesuchte Wörter
-----------------------------------------
Das ist das was ihr meintet. Stimmt schon, das zu realisieren wäre einfache mit dem Search Statistics Mod. Ansich keine schlechte Lösung, da es auch das Suchmaschinenranking verbessern kann. In der Wort-Wolke erscheinen genau die Wörter, die die Besucher sehen wollen. Was mir allerdings nicht gefällt ist die Tatsache, dass diese Suchwörter nicht das repräsentieren, was an Inhalt auf der Seite ist. Es könnte also viele Wörter geben, die die Besucher zwar finden wollen, die es auf der Seite aber garnicht oder nur wenig gibt! Deswegen habe ich mich für meine Galerie für das 3te entschieden.
3. Häufigste Keywords in den Bildern
--------------------------------------------------
Gut, weil es genau darstellt, was wie oft auf der Seite ist. Schlecht, da die Mitglieder viel Einfluß darauf haben. Ich habe mal einen Testquery gemacht und festgestellt, dass in meiner Galerie viele ihren Benutzernamen in die Keywords schreiben. Das möchte ich natürlich nicht in der Wortwolke haben, also muss noch ein Filter her.
Ausserdem hat der Query (für 100 Wörter) in meiner DB sehr lange gedauert (1,4 sec). Ist also nicht für index.php oder page_header.php in dieser Form geeignet. Ich werde mich wohl mal an einer Lösung versuchen, die aus einer Behelfstabelle liest, da die Keywords sich ja nur ändern, wenn jemand ein Bild hochläd. Der gesamte Query muss also nicht bei jedem Seitenaufruf gemacht werden. Vielleicht könnte man das Ding auch einfach täglich per cronjob ausführen und die Behelfstabelle neu auffüllen. (Vielleicht auch täglich von der Reihenfolge der Wörter neu durcheinanderwürfeln? Bringt vielleicht Abwechslung...)
Hier mal der Query, den ich verwende:
$sql = "SELECT sum(m.keys_match) as cnt, w.word_text
FROM ". WORDMATCH_TABLE ." m
LEFT JOIN ". WORDLIST_TABLE ." w ON (m.word_id = w.word_id)
WHERE m.keys_match = 1
GROUP BY m.word_id
ORDER BY cnt DESC
LIMIT $maximum_wolke";
$result = $site_db->query($sql);
Ich werde hier posten, wenn ich weiterkomme.
Mich würde aber trotzdem interessieren, wie ihr das mit den Suchwörtern lösen würdet? Ist bestimmt auch keine schlechte Lösung. Vielleicht könnte man ja auch die Anzahl der Suchergebnisse, also das was tatsächlich häufig gefunden wurde mit berücksichtigen. Das würde den Nachteil daran ausbügeln. Hat sich da jemand mal rangesetzt?
Und allgemein: Wie würdet ihr die unterschiedlichen Abstufungen berechnen? Hab diesbezüglich gerade einen Blackout....
Gruß
GrrBrr