TweakPC

Zurück   Computer Hardware Forum - TweakPC > Games und Software > Programmiersprachen

Antwort
 
LinkBack Themen-Optionen Thema bewerten Ansicht
Alt 27.02.2008, 07:27   #1 (permalink)
Stickstoff Junkie
 
Benutzerbild von Fabian
 
Registriert seit: 02.02.2002
Ort: Jena
Beiträge: 3.678

Fabian ist ein wunderbarer AnblickFabian ist ein wunderbarer AnblickFabian ist ein wunderbarer AnblickFabian ist ein wunderbarer AnblickFabian ist ein wunderbarer AnblickFabian ist ein wunderbarer Anblick

Standard 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?
Fabian
News-Redakteur
[TweakPC Team]

"Only wimps use tape backup: _real_ men just upload their important stuff
on ftp, and let the rest of the world mirror it" (Zitat Linus Torvalds)

Geändert von Fabian (27.02.2008 um 07:46 Uhr)
Fabian ist offline   Mit Zitat antworten
Alt 27.02.2008, 08:27   #2 (permalink)
TPC-InventarNr. 1337
 
Benutzerbild von io.sys
 
Registriert seit: 11.04.2002
Ort: Augusta vindelicorum
Beiträge: 14.010

io.sys kann auf vieles stolz sein
io.sys kann auf vieles stolz seinio.sys kann auf vieles stolz sein

Standard 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...

Grüße,

der io
io.sys ist offline   Mit Zitat antworten
Für diesen Beitrag bedankt sich:
Fabian (27.02.2008)
Alt 27.02.2008, 09:04   #3 (permalink)
Stickstoff Junkie
 
Benutzerbild von Fabian
 
Registriert seit: 02.02.2002
Ort: Jena
Beiträge: 3.678

Fabian ist ein wunderbarer AnblickFabian ist ein wunderbarer AnblickFabian ist ein wunderbarer AnblickFabian ist ein wunderbarer AnblickFabian ist ein wunderbarer AnblickFabian ist ein wunderbarer Anblick

Standard AW: MySQL: Volltext-Suche

Jo, genau das habe ich befürchtet. Denn LIKE "%fox%" oder RLIKE "fox" würden genau das machen, was ich brauche, aber eben nur langsam. Ich brauche da etwas schnelleres.
Fabian ist offline   Mit Zitat antworten
Alt 28.02.2008, 07:11   #4 (permalink)
Overclocker
 
Registriert seit: 24.05.2002
Beiträge: 200

BenniG. wird schon bald berühmt werdenBenniG. wird schon bald berühmt werden

Standard AW: MySQL: Volltext-Suche

Du kannst auch im BOOLEAN Mode suchen bei Match Against. Wahrscheinlich ist es das, was du suchst..
MySQL :: MySQL 5.0 Reference Manual :: 11.8.2 Boolean Full-Text Searches
BenniG. ist offline   Mit Zitat antworten
Für diesen Beitrag bedankt sich:
Fabian (28.02.2008)
Alt 28.02.2008, 07:17   #5 (permalink)
Stickstoff Junkie
 
Benutzerbild von Fabian
 
Registriert seit: 02.02.2002
Ort: Jena
Beiträge: 3.678

Fabian ist ein wunderbarer AnblickFabian ist ein wunderbarer AnblickFabian ist ein wunderbarer AnblickFabian ist ein wunderbarer AnblickFabian ist ein wunderbarer AnblickFabian ist ein wunderbarer Anblick

Standard 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.
Fabian ist offline   Mit Zitat antworten
Antwort

Stichworte
mysql, volltextsuche


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir erlaubt, neue Themen zu verfassen.
Es ist dir erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL wie funktionierts?! LeoHart Programmiersprachen 5 04.07.2005 15:34
MySQL - Suchzeitausgabe ?! predi Programmiersprachen 1 14.06.2005 11:58
kostenlose mysql datenbank?.. Sido Off Topic 2 11.09.2004 19:47
php und mysql Gast Programmiersprachen 5 28.06.2003 08:31
Gutes Newsystem mit MySQL ?! webAndy Programmiersprachen 0 20.04.2003 09:56


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 Uhr.




Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.
Impressum - Hardware-Links - Partner
Copyright © 1999-2013 TweakPC, Alle Rechte vorbehalten, all rights reserved