tiny little gizmos

Schöner suchen

Bald ist Ostern und da ist es nur angebracht, wenn ich mich mal wieder mit dem Thema “suchen” beschäftige. Anlässlich eines neuen Projektes brauchte ich nämlich eine neue Methode, dem Benutzer eine Suchfunktion zu bieten, die sowohl Dateien, als auch Datenbankeinträge verarbeitet. Ein Kollege meinte, ich solle mir doch mal Lucene genauer ansehen. Davon hatte ich zwar schon gehört, bin aber bisher davon ausgegangen, damit nur Textdateien durchsuchen zu können. Außerdem ist das Java, und das wollen wir PHPler ja nicht so gerne…

Haha – falsch!!!

Im Zend-Framework ist eine PHP-Implementation von Lucene enthalten – und sie ist cool! Indexerstellung von Dateien und DB-Einträgen – gerne auch gemischt. Allet janz einfach – Kein Problem.

Ich habe zum Ausprobieren eine kleine, einfache Suchfunktion für mein neues, kommendes Blogsystem geschrieben (da hatte ich eben schon eine größere Textmenge in der DB). Die Aktion hat von ersten Anschauen der Dokumentation, über die Installation des Zend Frameworks bis zur fertigen Funktion gerade mal 3 Stunden gebraucht. Die Hälfte der Zeit hätte ich mir auch schenken können, wenn ich nicht versucht hätte, per PHP Texte aus PDF-Files zum Indiezieren herauszuziehen. Das machen wir am besten weiterhin mit externen Tools, genau wie für Word-Dokumente.

Das Indizieren dauert etwas, wie ich bemerkt habe, aber wichtiger ist die Suchgeschwindigkeit. Der nächste Schritt ist, das ganze mal auf große Datenmengen loszulassen und mit der Eieruhr daneben zu sitzen.