Beispiel 3: CLucene
search("mowgli"); $length = $hits->length(); if ($length > 0) { for ($i = 0; $i get($i, "path")); var_dump($hits->id($i)); var_dump(round($hits->score($i), 3)); } } else { echo "Keine Treffer."; } $searcher->close(); ?>
Das Beispiel verwendet den von der CLucene-Erweiterung mitgelieferten Datenindex. In dem Beispielcode wird nur gesucht und anschließend werden die Treffer ausgegeben.
Schöner Artikel?
Hat Ihnen der Artikel gefallen? Dies und mehr ist alles Teil der Ausgabe 4.09 unseres PHP Magazins. Alle zwei Monate frisch am Kiosk! Zur jeweils aktuellen Ausgabe geht es hier.
Fazit
Alle hier vorgestellten Lösungen kommen mit Vor- und Nachteilen daher – wobei eigentlich nur Lucene mit der PHP-Java-Bücke und das Zend-Framework vollwertige Lösungen sind. Als Empfehlung kann man sagen: Wer nur ein wenig probieren möchte und Java nicht scheut, ist mit der ersten Lösung gut bedient, denn diese kann problemlos zu einer existierenden PHP-Umgebung installiert werden. Wer jedoch eher unerfahren im Umgang mit Java ist und auch tiefer einsteigen möchte, dem sei das Zend-Framework ans Herz gelegt. Egal für welche Lösung man sich entscheidet, die Ergebnisse überzeugen schon bei einfachen Anwendungen und werden beide im einen oder anderen Fall mit Sicherheit die bisher verwendete MySQL-Datenbank ablösen.
PHP-Java-Brige | Zend-Framework | CLucene | |
Programmiersprache | Java | PHP | C++ |
PHP-Abhängigkeiten | Nein | Iconv, dom, ctype, bitype, (libz) | Nein |
Kommunikation | Zwischenserver | Direkt | Extension |
Programmstatus | stabil | stabil | alpha |
Einbindung als Extension | Nein 1* | Nein | Ja |
Java-Kenntnisse nötig | Ja | Nein | Nein |
Lucene JAR-Datei nötig | Ja | Nein | Nein |
Indexaufbau | Ja | Ja | Nein |
Indexabfrage | Ja | Ja | Ja |
Inhaltserschließung aus MS-Dokumenten | (Ja) 2* | Ja | – |
Analyser für deutsche Sprache | (Ja) 3* | (Ja) 4* | – |
Beispielcode | Ja | Ja | Ja |
Geschwindigkeit | + | o | +++ |
Voraussetzungen – jeweils mit „oder besser“ |
PHP 5.1.2
Java 1.4 |
PHP 5.2.4 |
PHP 5.0
C++-Compiler |
Tabelle 3: Vergleich der drei Lösungen PHP-Java-Bridge, Zend Framework und CLucene
src=“http://entwickler.com/develop/zonen/magazine/onlineartikel/pspic/picture_file/53/bohne_lang4aa77a4d02561.png“ hspace=“5″ vspace=“5″ alt=““>
Dr. Andreas Bohne-Lang arbeitet an der Medizinischen Fakultät Mannheim der Universität Heidelberg in der EDV-Abteilung sowie in der Bibliothek.