Search Bites

Mehr Textanalyse und besseres Query-Parsing: Apache Lucene und Solr 6.2 veröffentlicht

Uwe Schindler

Das Apache Lucene Team hat Apache Lucene und Apache Solr in der Version 6.2 veröffentlicht. Wir werfen einen Blick auf die spannenden Neuerungen, die es in das Release geschafft haben.

Apache Lucene 6.2

Apache Lucene, die unter Apache Solr und Elasticsearch liegende Volltextsuch-Bibliothek, hat einige Neuigkeiten zu verzeichnen: So wurde die Sparchunterstützung um einen morphologischen Analyzer für die ukrainische Sprache erweitert. Dieser basiert auf dem ursprünglich für die polnische Sprache entwickeltem “Morphologic” Framework von Dawid Weiss.

In der Version 4 von Lucene wurden alle Analyzer-Implementierungen in ein separates Modul geschoben; leider führte dies dazu, dass Apache Lucene für schnelle Mockups nicht mehr benutzt werden kann, weil außer dem abstrakten Analyse-Framework keine Implementierung mehr zur Verfügung stand. Nachdem der für zahlreiche westliche Sprachen geeignete “StandardAnalyzer” nun alle Unicode-Standards für das Zerlegen von Text in Tokens unterstützt und sprachübergreifend einsetzbar ist, wurde entschieden, diesen für Anfänger wieder als Bestandteil des Core-Moduls mit auszuliefern.

Dies ist vergleichbar damit, dass auch mit dem Core-Modul ein Codec für die Indexerzeugung ausgeliefert wird, der Bezug auf das separate Codecs-Modul aber nicht verlangt wird. Genau wie für Codecs ist eine separate Maven-Dependency somit nicht mehr nötig, um einfache Code-Beispiele zur Indexierung von englischen oder deutschen Texten zu erzeugen.

Eine weitere Verbesserung ist eine Änderung der Syntax des Query Parsers, so dass der Text nicht mehr im ersten Schritt an Whitespace tokenisiert wird, was den (auch von Apache Solr bekannten) Standard-Queryparser in Verbindung mit asiatischem Text teilweise unbrauchbar machte. Bisher mussten User die durch AnalyzingQueryParser bereitgestellten Workarounds benutzen. Die neue Syntax setzt nun Leerzeichen nur noch um Query Keywords (“AND”, “OR”,…). Mit kleineren Inkompatiilitäten ist zu rechnen, es wird daher empfohlen, bestehende Abfragen einmal auszuprobieren.

Das auf 64-Bit-Plattformen als Standard ausgewählte I/O-Modul MMapDirectory wurde verbessert, so dass bei inkorrekter Benutzung des Index fatale SIGSEGV-Fehler vermieden werden. Es wird aber weiterhin keine Garantie dafür gegeben, dass diese vermieden werden, wenn versehentlich Indexe geschlossen werden, aber weiterhin in anderen, nebenläufigen Prozessen durchsucht werden.

Viele Leute hatten sich in diesem Umfeld auch über die extensiv benutzten Weak References beschwert – diese gehören nun auch der Vergangenheit an. Bis das Problem mit den SIGSEGVs jedoch komplett beseitigt werden kann, werden wir wohl noch bis Java 10 (!) warten müssen, denn frühestens dann wird das Unmapping von Off-Heap-Bytebuffers sicher ermöglicht werden können. Gespräche der Lucene-Entwickler mit den OpenJDK-Entwicklern fanden zur diesjährigen FOSDEM 2016 bereits statt.

Apache Solr 6.2

Apache Solr baut wie immer auf den Funktionen von Apache Lucene auf, bietet aber selbst auch einige Neuigkeiten: Allen voran basiert das Extraction Module (“Solr Cell”) nun auf Apache TIKA 1.13. Dadurch ist es nun möglich, noch mehr Dateiformate direkt in Solr zu importieren. U.a. kann jetzt der Text aus gescannten TIF-Dateien extrahiert werden, wenn das native Tool Tesseract auf dem Server installiert ist. Somit können Texte aus zahlreichen zusätzlichen Dokumenttypen extrahiert und somit einfach indexiert werden.

Auch Streaming Expressions, welche auf dem seit Lucene 4 vorhandenen Feature “DocValues” basieren, wurden um weitere Features erweitert: So ist es nun möglich, auch Boolean-Datentypen zu benutzen und damit Auswertungen zu erzeugen. Der Export-Handler unterstützt nun auch den Export von Datumswerten korrekt.

Auch bei der Verwaltung von Kollektionen (auch als “Cores” bekannt) sind Neuerungen hinzugekommen: Erstmalig lassen sich nur Snapshots von Indexen und deren Commit-Points erstellen und auf verschiedenen Dateisystemen ablegen, unter anderem auch Hadoop.

Die Liste der Änderungen von Apache Lucene und Apache Solr sind auf der Projekt-Webseite zu finden.

Verwandte Themen:

Geschrieben von
Uwe Schindler
Uwe Schindler
Uwe Schindler ist Mitglied des Project Management Committee im Apache-Lucene-Projekt. Er ist mit seiner Consulting-Firma SD DataSolutions GmbH in Bremen ansässig und kümmert sich am Zentrum für Marine Umweltwissenschaften (MARUM) um die Suche nach geowissenschaftlichen Daten in der Umweltdatenbank PANGAEA.Blog: http://blog.thetaphi.deTwitter: @ThetaPh1
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: