Lisp-Lucene-Package

Das Lisp-Lucene-Package ist eine in Java geschriebene Erweiterung zum Lisp-Package. Es stellt mehrere Funktionen zur Verfügung, mit denen auf einen Lucene Index zugegriffen werden kann.

Das Package ist als Open Source veröffentlicht.

Im Folgenden werden die Funktionen des Packages erläutert.


make-lucene-index

(make-lucene-index path) liefert ein
Objekt, mit dem auf einen Lucene Index zugegriffen werden kann. Als Argument muss der Dateisystem-Pfad eines Indexes als Zeichenkette übergeben werden.


add-lucene-document

(add-lucene-document
index untokenized tokenized) fügt ein Dokument in einen Index ein. Die Funktion erwartet drei Argumente, den Index (repräsentiert durch ein Objekt, das mit make-lucene-index erzeugt wurde) und zwei Paarlisten, die die Namen und Werte der Felder des Dokuments enthalten. Die Paarlisten sind Listen von zwei-elementigen Listen, die ein Symbol (den Feldnamen) und eine Zeichenkette (den Feldwert) enthalten. Die Feldwerte aus der ersten Paarliste werden nicht in Token zerlegt.


delete-lucene-document

(delete-lucene-document
index name value) löscht Dokumente aus dem Index. Gelöscht werden alle Dokumente, die im Feld name (ein Symbol) den Wert value (eine Zeichenkette) haben. Die Funktion liefert die Anzahl der gelöschten Dokumente als Resultat, oder nil, wenn keine Dokumente gelöscht wurden.


get-lucene-document

(get-lucene-document
index name value) liefert ein Dokument aus dem Index index, das im Feld mit dem Namen name den Wert value hat. Der Rückgabewert ist nil, wenn kein derartiges Dokument gefunden wurde. Anderenfalls wird das Dokument als Resultat geliefert. Dokumente werden als zwei-elementige Listen dargestellt. Das erste Element der Liste ist eine Liste mit Name-Wert-Paaren der Felder, deren Werte nicht in Token zerlegt wurden. Das zweite Element der Liste ist eine Paarliste mit den Feldern, deren Werte in Token zerlegt wurden.


query-lucene-document

(query-lucene
index query max-count) liefert eine Liste von Dokumenten aus dem Index index, die auf die Query query passen. Die Query ist eine Zeichenkette. Es werden höchstens max-count Dokumente zurückgegeben.


Einbinden ins Lisp-Package

In das
Lisp-Package können die Funktionen aus dem Lisp-Lucene-Package eingebunden werden, indem der folgende Lisp-Code ausgeführt wird:

(setq make-lucene-index (make-combinator "
lisp.lucene.combinator.MakeLuceneIndex" nil))
(setq add-lucene-document (make-combinator "
lisp.lucene.combinator.AddLuceneDocument" nil))
(setq delete-lucene-document (make-combinator "
lisp.lucene.combinator.DeleteLuceneDocument" nil))
(setq get-lucene-document (make-combinator "
lisp.lucene.combinator.GetLuceneDocument" nil))
(setq query-lucene-document (make-combinator "
lisp.lucene.combinator.QueryLuceneDocument" nil))


Download

Die Quelltexte unterliegen der
Modified Artistic License v1 finden sich in der Version v3 in der Jar-Datei unter dieser URL: http://www.qrst.de/downloads/lisplucenesrc.jar

Zusätzlich werden noch das
Collections-Package, das Lisp-Package, das Threads-Package und Lucene 2.0 benötigt.