Relevanz Volltextsuche /mehrere Suchbegriffe
am 24.03.2006 08:17:20 von Stephan Zitzmann
Also ich habe versucht eine Volltextsuche zu gestalten. Ist mir sogar
gelungen.
Ich habe dabei als Anleitung
http://dev.mysql.com/doc/refman/4.0/de/fulltext-search.html
verwendet.
Jetzt steht da als Beispiel, wenn ich
SELECT * FROM artikel WHERE MATCH (titel,artikeltext) AGAINST
('Datenbank');
verwende, dann wird mir das Suchergebnis in der Reihenfolge seiner
Relevanz angezeigt. So verstehe ich den Text unter dem Beispiel.
Ich habe das jetzt mal bei meiner Problemstellung mit zwei
Suchbegriffen versucht. Also in der Form
SELECT * FROM artikel WHERE MATCH (titel,artikeltext) AGAINST
('Datenbank MySQL');
Das Ergebnis war, dass das erste Ergebnis ein Ergebnis mit nur einem
Suchbegriff war. Die Datensätze, in denen der Begriff zweimal vorkam,
waren irgendwo in der Mitte.
Für meinen Geschmack eine etwas eigenartige Relevanzreihenfolge.
Wer den konkreten Fall ausprobieren will:
http://www.musiklehrer-fuer-musiklehrer.de/buch_abfrage_erge bnis.php?menuid=18
und "Gitarre Technik" eingeben.
Warum erscheint das Buch Pumping Nylon als viertletztes Buch? Das
müsste doch am Anfang erscheinen.
Grüße
Stephan
--
Bücher und CD-Tipps von Musiklehrern zusammengestellt
http://www.musiklehrer-fuer-musiklehrer.de/buch_abfrage.php? menuid=18
http://www.musiklehrer-fuer-musiklehrer.de/CD_abfrage.php?me nuid=19
http://www.gitarrenlehrer.frankfurt.stephan-zitzmann.de
Re: Relevanz Volltextsuche /mehrere Suchbegriffe
am 24.03.2006 08:35:55 von Andreas Pankratz
Hallo Stephan,
wenn du die angegebene Seite
http://dev.mysql.com/doc/refman/4.0/de/fulltext-search.html
wirklich gelesen hast, dann solltest du auch auf folgenden Text
gestoßen :
- - -
mysql> SELECT id, artikeltext, MATCH (titel,artikeltext) AGAINST (
-> 'Sicherheits-Implikationen, wenn Sie MySQL als root laufen
lassen') AS rang
-> FROM artikel WHERE MATCH (titel,artikeltext) AGAINST
-> ('Sicherheits-Implikationen, wenn Sie MySQL als root laufen
lassen');
Das ist ein komplexeres Beispiel - die Anfrage gibt die Relevanz
zurück und sortiert die Zeilen auch noch nach absteigender Relevanz.
Um das zu erzielen, müssen Sie MATCH zweimal angeben. Beachten Sie,
dass das keinen zusätzlichen Overhead verursacht, weil der
MySQL-Optimierer bemerkt, dass diese zwei MATCH-Aufrufe identisch sind
und daher den Code für die Volltextsuche nur einmal aufruft.
- - -
Gruß
Andreas
Re: Relevanz Volltextsuche /mehrere Suchbegriffe
am 24.03.2006 10:08:00 von Stephan Zitzmann
"Andreas Pankratz" schrieb:
>Hallo Stephan,
>
>wenn du die angegebene Seite
>http://dev.mysql.com/doc/refman/4.0/de/fulltext-search.html
>wirklich gelesen hast, dann solltest du auch auf folgenden Text
>gestoßen :
>
> - - -
>mysql> SELECT id, artikeltext, MATCH (titel,artikeltext) AGAINST (
> -> 'Sicherheits-Implikationen, wenn Sie MySQL als root laufen
>lassen') AS rang
> -> FROM artikel WHERE MATCH (titel,artikeltext) AGAINST
> -> ('Sicherheits-Implikationen, wenn Sie MySQL als root laufen
>lassen');
>
>Das ist ein komplexeres Beispiel - die Anfrage gibt die Relevanz
>zurück und sortiert die Zeilen auch noch nach absteigender Relevanz.
>Um das zu erzielen, müssen Sie MATCH zweimal angeben. Beachten Sie,
>dass das keinen zusätzlichen Overhead verursacht, weil der
>MySQL-Optimierer bemerkt, dass diese zwei MATCH-Aufrufe identisch sind
>und daher den Code für die Volltextsuche nur einmal aufruft.
> - - -
Ich habe das schon damals gelesen und nicht so ganz verstanden, wo der
unterschied ist und tue es auch jetzt nicht. Nachdem ich aber die
Synatax auf meinem Tesstserver ausprobiert habe, bekomme ich das selbe
Ergebnis, wie mit der im OP genannten.
Bei genauerem Hinsehen ist es so, dass wenn ich ich "Technik" eingebe,
"Technikband" nicht in Erwägung gezogen wird.
Die Frage ist, wie bekomme ich das hin?
Grüße
Stephan
--
Bücher und CD-Tipps von Musiklehrern zusammengestellt
http://www.musiklehrer-fuer-musiklehrer.de/buch_abfrage.php? menuid=18
http://www.musiklehrer-fuer-musiklehrer.de/CD_abfrage.php?me nuid=19
http://www.gitarrenlehrer.frankfurt.stephan-zitzmann.de