Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Volltext Suche implementieren

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Dieter Moskanne
PostRank 4
PostRank 4
Beiträge: 105
Registriert: 04.08.2004, 10:36
Wohnort: Pauli

Beitrag von Dieter Moskanne » 23.03.2005, 13:41

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

Anzeige von ABAKUS

von Anzeige von ABAKUS »


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

robo
PostRank 8
PostRank 8
Beiträge: 837
Registriert: 23.12.2003, 19:41
Wohnort: Schwangau

Beitrag von robo » 23.03.2005, 15:35

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 :)

Dieter Moskanne
PostRank 4
PostRank 4
Beiträge: 105
Registriert: 04.08.2004, 10:36
Wohnort: Pauli

Beitrag von Dieter Moskanne » 23.03.2005, 18:13

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