Verschiedene Möglichkeiten, einen Lucene-Suchindex via PHP einzubinden

Lucene – Ein Suchindex in der Praxis
Kommentare

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

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.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -