Suche

Apache Lucene & Solr 3.4

Auch in Sachen Query-Parser hat sich einiges getan: Der flexibel konfigurierbare neue Lucene-QueryParser kann nun auch mit numerischen Feldern umgehen. Es ist nun möglich, die Datentypen der einzelnen Lucene-Felder als „Schema“ mitzugeben, so dass der Parser weiß, ob er Term(Range)Queries oder NumericRangeQueries erzeugen muss. Bisher musste man dies durch Subclassing des Parsers lösen, was nicht intuitiv war (siehe auch das Code-Beispiel im Artikel „Trie Range Queries“, Java Magazin 8/2010).

Im Bereich der Behandlung von Synonymen während der Indexierung gibt es nun eine sehr performante Implementierung basierend auf endlichen Transduktoren (FST). Der neue SynonymFilter kann sowohl in Lucene als auch in Solr benutzt werden und kann gut mit riesigen Wörterbüchern umgehen. Es ist außerdem möglich, während der Indexierung frei zu wählen, welche Informationen in der Posting-List abgelegt werden sollen: Termfrequenz, Positionen oder gar nichts. Dies ermöglicht Reduzierung der Indexgröße, wenn diese Informationen nicht benötigt werden, weil zum Beispiel nicht nach Phrasen gesucht werden soll. In Solr wurde das Indexschema um die neuen Einstellungen ergänzt.

Lucene erhielt außerdem die Möglichkeit, die korrekte Reihenfolge von Dokumenten in sortierten Resultatlisten sicherzustellen, wenn das Sortierfeld fehlt, indem für fehlende Werte ein Default-Value vergeben werden kann. So ist es möglich, bei einer Sortierung nach Datum alle Dokumente ohne Datum am Ende der Liste anzuzeigen, indem man als „missingValue“ ein Datum fern in der Zukunft benutzt.

Auch wurden in Solr einige Ergänzungen durchgeführt und fehlende Features von Lucene nachgerüstet: So ist es jetzt möglich, alle Dateisystemabstraktionen auch in Solr zu benutzen, so dass man in der Konfiguration nun auch NIOFSDirectory explizit auswählen kann. Außerdem ist es seit Solr 3.4 möglich, beim Indexieren von XML-Dokumenten eine XSL-Transformation anzugeben, welche beliebige XML-Formate in das Solr-Format umsetzt – man spart sich so ein separates Preprocessing.

Fazit

Alles in allem bringt die neue Version sehr sinnvolle Erweiterungen für den Einsatz von Lucene und Solr als Volltextsuchmaschine. Da es sich um ein „Minor Upgrade“ handelt, kann das Upgrade problemlos ausgeführt werden. Es sollte jedoch trotzdem der „Backwards Compatibility“-Absatz in der CHANGES.txt der Distribution beachtet werden. Den Download der Pakete erreicht man wie immer unter http://lucene.apache.org/.

Uwe Schindler (uschindler[at]sd-datasolutions.de) ist Committer und PMC-Member von Apache Lucene Core und Apache Solr. Er kümmert sich hier vor allem um die neuen Funktionen zur numerischen Suche und die attributbasierte Textanalyse API, ein Grundbaustein für das flexible Indexing. Er arbeitet als Geschäftsführer von SD DataSolutions GmbH (www.sd-datasolutions.de), einem Consulting-Dienstleiter für Apache Lucene und Solr, sowie als Architekt und Entwicker für das Geoinformationssystem PANGAEA (www.pangaea.de). Er ist regelmäßiger Referent auf Konferenzen über die Apache-Lucene-Familie.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.