Seite 1 von 1
Volltext Suche implementieren
Verfasst: 23.03.2005, 13:41
von Dieter Moskanne
Hi Forum,
Ich möchte eine PHP/MySQL Volltext-Suche auf einer großen Anzahl von .csv Daten implementieren.
Leider scheitert dies momentan an der Performanz der mysql Abfragen.
Kennt jemand ein gutes Tutorial oder eine Seite (evtl. SourceForge Projekt?) mit Klassen / Beschreibung zum Download?
Mfg
DM
Verfasst:
von
Hochwertiger Linkaufbau bei ABAKUS:
- Google-konformer Linkaufbau
- nachhaltiges Ranking
- Linkbuilding Angebote zu fairen Preisen
- internationale Backlinks
Wir bieten
Beratung und
Umsetzung.
Jetzt anfragen:
0511 / 300325-0
Re: Volltext Suche implementieren
Verfasst: 23.03.2005, 15:35
von robo
Dieter Moskanne hat geschrieben:Ich möchte eine PHP/MySQL Volltext-Suche auf einer großen Anzahl von .csv Daten implementieren.
Leider scheitert dies momentan an der Performanz der mysql Abfragen.
Wie sieht denn deine Abfragesyntax aus?
Tip: Nimm MySQL 4.1 und einen FULLTEXT Index. Dann flutscht das.
https://dev.mysql.com/doc/mysql/en/fulltext-search.html
cu, Robo

Volltext Suche implementieren
Verfasst: 23.03.2005, 18:13
von Dieter Moskanne
HEY Robo, Vielen Dank.
Das bringt uns hier schon enorm weiter!
Wir hatten erst einen eigenen Index für jede Suchanfrage erstellt, dann aber Probleme mit so Sache wie: Suche nach "Tisch" und Wörtern wie "praktisch" gehabt, ausserdem mit den ganzen Zeichen, die so vor und nach einem Wort vorkommen, wie Leerzeichen, Komma usw.
Die Suche auf dem von mysql erstellten index ist sehr schnell und es werden auch intelligente Wörter indexiert bzw. common words rausgefiltert.
allerdings gibt folgende Anfrage nicht das gewünschte Ergebnis zurück:
SELECT * FROM csv WHERE MATCH (title) AGAINST ('nokia') AND MATCH (title) AGAINST ('handy') AND MATCH (title) AGAINST ('und')
Eigentlich sollte das Wort "und" ja nur rausgefiltert werden und alle Ergebnisse, die "nokia" und "handy" enthalten, rauskommen, die Anfrage gibt aber gar kein Ergebnis wieder, da anscheinend auch auf "und" gematcht wird.
Das heißt wohl man muss vorher alle common words rausfiltern und dann erst die mysql Anfrage starten, oder was meinst du?
Aber vielen Dank schonmal
Gruß
DM
Volltext Suche implementieren
Verfasst: 23.03.2005, 18:23
von robo
SELECT * FROM csv WHERE MATCH (title) AGAINST ('+nokia +handy' IN BOOLEAN MODE)
Volltext Suche implementieren
Verfasst: 24.03.2005, 12:38
von Dieter Moskanne
Jo, damit gehts ganz gut, allerdings sind unsere Anfragen immer noch verdammt inperformant.
Warscheinlich ist die Datenbank einfach zu gross ... 89981 Zeilen
Oder glaubst du, dass wir angesichts der Größe die falsche Strategie fahren?
Gruß
DM
Re: Volltext Suche implementieren
Verfasst: 24.03.2005, 13:28
von robo
Dieter Moskanne hat geschrieben:Jo, damit gehts ganz gut, allerdings sind unsere Anfragen immer noch verdammt inperformant.
Warscheinlich ist die Datenbank einfach zu gross ... 89981 Zeilen
Oder glaubst du, dass wir angesichts der Größe die falsche Strategie fahren?
Ja was jetzt? Weiter oben schreibst du:
Dieter Moskanne hat geschrieben:Die Suche auf dem von mysql erstellten index ist sehr schnell
Da ich weder deine Datenbankstruktur, noch deine genaue Abfragesyntax, noch die Hardwareausstattung des MySQL-Servers kenne, kann ich dir schlacht sagen, wo es klemmt. Aber 89981 Datensätze sind nicht wirklich viel.
cu, Robo

Volltext Suche implementieren
Verfasst: 01.04.2005, 20:38
von pvdb
hi,
unser suche ebenfalls mit dem volltextindex erreich bei zur zeit 260.000 produkte eine parse time im schnitt von 0,12s.
die suche ist ferner noch so aufbaut, dass links die kategorien angezeigt werden mit der anzahl der treffer, so dass man die ergebnisse filtern kann, ähnlich wie bei amazon und ebay.
an deiner anzahl der datensätzes liegt es nicht. ansonsten hat robo schon gesagt woran es liegen könnte.
phil
Verfasst: 04.04.2005, 10:32
von Dieter Moskanne
Yo sorry, wollte eigentlich schon längst nochmal geantwortet haben.
Unser Fehler lag in der Live- Generierung von Thumbnails der Produktbilder, deshalb haben die Anfragen so lange gedauert.
Jetzt skalieren wir sie mit css und lassen sie auf dem Server der Anbieter ...
Der Tipp von Robo hat aber trotzdem sehr geholfen, danke nochmal
Grüße,
DM