PythonQ 240-8XX Manual de usuario Pagina 496

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 768
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 495
Kapitel 7: MySQL-Sprachreferenz 475
Die Funktion MATCH pr¨uft eine nat¨urlichsprachige Anfrage gegen (AGAINST) eine Textsamm-
lung (einfach ein Satz von Spalten, der vom FULLTEXT-Index a/jointfilesconvert/293675/bgedeckt wird). F¨ur jede Zeile
in einer Tabelle gibt sie eine Relevanz zur¨uck - ein
¨
Ahnlichkeitsmaß zwischen dem Text in
dieser Zeile (in den Spalten, die Teil der Textsammlung sind) und der Anfrage. Wenn
sie in einer WHERE-Klausel benutzt wird (siehe Beispiel oben), werden die zur¨uckgegebenen
Zeilen automatisch nach absteigender Relevanz sortiert. Die Relevanz ist eine nicht nega-
tive Fließkommazahl. 0 Relevanz bedeutet keine
¨
Ahnlichkeit. Die Relevanz wird auf der
Grundlage der Anzahl von ortern in der Zeile, der Anzahl eindeutiger orter in dieser
Zeile, der Gesamtzahl von ortern in der Textsammlung und der Anzahl von Dokumenten
(Zeilen) berechnet, die ein bestimmtes Wort enthalten.
Das obige Beispiel ist ein grundlegendes Beispiel der Benutzung der MATCH-Funktion. Die
Zeilen werden nach absteigender Relevanz zur¨uckgegeben.
mysql> SELECT id,MATCH (titel,artikeltext) AGAINST (’Tutorial’) FROM artikel;
+----+------------------------------------------------+
| id | MATCH (titel,artikeltext) AGAINST (’Tutorial’) |
+----+------------------------------------------------+
| 1 | 0.64840710366884 |
| 2 | 0 |
| 3 | 0.66266459031789 |
| 4 | 0 |
| 5 | 0 |
| 6 | 0 |
+----+------------------------------------------------+
5 rows in set (0.00 sec)
Dieses Beispiel zeigt, wie man Relevanzen abruft. Weil weder die WHERE- noch die ORDER
BY-Klausel vorhanden sind, werden die Zeilen unsortiert zur¨uckgegeben.
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’);
+----+----------------------------------------------------------------+-----------------+
| id | artikeltext | rang |
+----+----------------------------------------------------------------+-----------------+
| 4 | 1. Lassen Sie mysqld nie als root laufen. 2. Normalisieren ... | 1.5055546709332 |
| 6 | Wenn er korrekt konfiguriert ist, ist MySQL ... | 1.31140957288 |
+----+----------------------------------------------------------------+-----------------+
2 rows in set (0.00 sec)
Das ist ein komplexeres Beispiel - die Anfrage gibt die Relevanz zur¨uck und sortiert die
Zeilen auch noch nach absteigender Relevanz. Um das zu erzielen, ussen Sie MATCH zweimal
angeben. Beachten Sie, dass das keinen zus¨atzlichen Overhead verursacht, weil der MySQL-
Optimierer bemerkt, dass diese zwei MATCH-Aufrufe identisch sind und daher den Code f¨ur
die Volltextsuche nur einmal aufruft.
MySQL benutzt einen sehr einfachen Parser, um Text in orter zu zerlegen. Ein “Wort”
ist jede Folge von Buchstaben, Zahlen, und _’. Jedes “Wort”, das in der Liste der
Stopwords vorkommt oder einfach nur zu kurz ist (3 Zeichen o der weniger), wird ignoriert.
Vista de pagina 495
1 2 ... 491 492 493 494 495 496 497 498 499 500 501 ... 767 768

Comentarios a estos manuales

Sin comentarios