Computer Hardware Forum - TweakPC

Computer Hardware Forum - TweakPC (https://www.tweakpc.de/forum/)
-   Programmiersprachen (https://www.tweakpc.de/forum/programmiersprachen/)
-   -   MySQL: Volltext-Suche (https://www.tweakpc.de/forum/programmiersprachen/55227-mysql-volltext-suche.html)

Fabian 27.02.2008 08:27

MySQL: Volltext-Suche
 
Hallo,

so ich bin es mal wieder.
Ich möchte eine Volltext-Suche realisieren, dafür bietet MySQL ja entsprechende Funktionen.

- ... WHERE suche LIKE '%firefox%'
- ... WHERE MATCH ( suche ) AGAINST ( 'firefox*' )

Nun die erste Frage: Welche ist schneller? Ich denke die zweite Abfrage ist deutlich schneller, oder?
Zum zweiten: Ich möchte auch ein Ergebnis bekommen, wenn jemand "fox" eingibt. Die LIKE-Methode kann dies Dank der eingefügten Prozentzeichen, bei der zweiten Methode habe ich noch keine Lösung gefunden auch ein '*fox*' hilft leider nichts, die Suche geht nur andersrum, sprich 'fire*' findet auch Firefox.

Ideen?

Gruß
Fabian

Update: Mittlerweile habe ich auch einen Kommentar gefunden. Es geht mit der Volltext-Suche nicht, weil MySQL hier auf einen Index (Baum) zurückgreift und für den sind die ersten Buchstaben logischerweise die wichtigsten. Habt ihr vielleicht doch noch Ideen?

io.sys 27.02.2008 09:27

AW: MySQL: Volltext-Suche
 
Hallo Fabian,

ich kann Dir jetzt dazu keine genaue Angabe machen, jedoch einen Erfahrungswert aus den Datenbankabfragen geben, die wir hier immer wieder gegen große Kundendatenbanken laufen lassen.

Der LIKE Befehl ist in den meisten Fällen um ein vielfaches langsamer als der MATCH.

WEiss jetzt nicht, ob das relevant ist, aber wollte das einfach mal zum Besten geben... :idea:

Grüße,

der io

Fabian 27.02.2008 10:04

AW: MySQL: Volltext-Suche
 
Jo, genau das habe ich befürchtet. Denn [I]LIKE "%fox%"[/I] oder [I]RLIKE "fox"[/I] würden genau das machen, was ich brauche, aber eben nur langsam. Ich brauche da etwas schnelleres.

BenniG. 28.02.2008 08:11

AW: MySQL: Volltext-Suche
 
Du kannst auch im BOOLEAN Mode suchen bei Match Against. Wahrscheinlich ist es das, was du suchst..
[url=http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html]MySQL :: MySQL 5.0 Reference Manual :: 11.8.2 Boolean Full-Text Searches[/url]

Fabian 28.02.2008 08:17

AW: MySQL: Volltext-Suche
 
Hi, danke für den Hinweis, aber ich hatte schon im Boolean-Mode gesucht (das nur oben vereinfacht dargestellt). Damit kann man wenigstens schon einmal "und", "oder" und "*" benutzen. Aber man kann damit auch nicht "*fox*" suchen, das vordere Sternchen wird einfach nicht verwendet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:45 Uhr.

Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.