Starkes Such-Team ASF veröffentlicht Lucene und Solr 6.4
Die Entwickler des Lucene-Projekts haben Apache Lucene und Apache Solr auf die Version 6.4 aktualisiert. Lucene bringt vor allem eine verbesserte Textanalyse und Solr beherrscht jetzt den Learning-To-Rank-Algorithmus.
Anbieter zum Thema

Die Bibliothek Apache Lucene ist nicht nur fundamental für Apache Solr, auch Elasticsearch und andere Lösungen nutzen Lucene als Basis zur Volltextsuche.
Lucene 6.4
Zu den interessantesten neuen Funktionen gehören der „SynonymGraphFilter“ sowie die Optimierung von „graph token streams“, womit die Lucene-API nun TokenStreams noch besser unterstützt.
TokenStreams erzeugen Tokens mit einer Graphen-ähnlichen Struktur. Um eine solche handelt es sich z. B. dann, wenn an der Position eines Einzel-Tokens eine Sequenz mehrerer alternativer Tokens generiert wird, etwa bei Mehr-Wort-Synonymen.
Die Funktionsweise von TokenStreams erläuterte das Lucene-Urgestein Michael McCandless schon 2012 in seinem Blog. Das „SynonymGraphFilter“-Feature in Lucene 6.4 löst eine Reihe von Problemen im Zusammenhang mit dem bisher von der Textanalyse-Engine verwendeten TokenStreams-Konzept.
Darüber hinaus ist Lucene 6.4 nun zu den jüngst eingeführten Änderungen im Java-9-Jigsaw-Modulsystem kompatibel, denn auch Lucene und Solr hatten (wie andere Projekte auch) Probleme mit den im Early-Access Build 148 eingeführten Neuerungen, etwa bei „strict encapsulation“ oder der Java Runtime.
Unified Highlighter
Ebenfalls neu ist, dass der mit Lucene 6.3 eingeführte „Unified Highlighter“, der die früher in verschiedenen Klassen verwendeten Highlighting-Algorithmen zu einem universell einsetzbaren Highlighter verbinden kann, jetzt auch Apache Solr unterstützt. Außerdem soll der neue Unified Highlighter in zukünftigen Versionen zum Standard werden. Neu ist auch, dass das Sortieren von Indexen nun auch ein Sortieren von „multi-valued“-Fields mit MIN-, MAX- und weiteren Selektoren unterstützt.
Ebenfalls erweitert wurde das mit Lucene 6.0 eingeführte Feature dimensional points. „Points“ speichern nun im Fall der 1. Dimension nicht mehr implizit die Split-Dimension, was bis zu sechs Prozent Speicher für große Typen wie „InetAddressPoint“ und bis zu 33 Prozent für kleine Typen wie „HalfFloatPoint“ einspart. Der BKD InMemory-Index für mehrdimensionale Points nutzt nun ein komprimiertes Format und das BKD-Writing puffert nun jeden Blatt-Block im Heap, bevor auf physische Datenträger geschrieben wird.
Apache Solr baut von Version zu Version mehr auf den von Lucene bereitgestellten Funktionen auf. Ein interessanter Vergleich zwischen Solr und Elasticsearch bietet übrigens die Deutsche Website db-engines. Apache Solr bringt aber auch selbst einige interessante Neuerungen mit.
Learning-To-Rank
So gibt es jetzt ein Modul, das den Learning-To-Rank-(LTR)-Algorithmus implementiert. Es wurde von Bloomberg beigesteuert und ermöglicht nach dem Ausführen einer Suchanfrage weiteres Feintuning, was als „Reranking“ bezeichnet wird und die Ergebnisse auf Basis erlernter Features weiter verbessert. Entwickler und Nutzer können dem Modul dazu vorher berechnete Modelle in Form von JSON-Dateien Verfügung stellen.
Ferner erhielt Solr ein neues Feature, das es einfacher machen soll, im „Metrics“-Modul JVM-spezifische Metriken wie Speicherbedarf, Garbage Collection und weitere JVM-Parameter zu überwachen. Auch zahlreiche Solr-interne Parameter wie die Anzahl an „Index Merges“ oder das durch den Index erzeugte Disk-I/O sind abrufbar.
Eine Liste der Neuerungen in Apache Lucene und Apache Solr findet sich daher wie üblich auf der Lucene-Projektseite. Einen detaillierteren Blick auf die neuen Features in Lucene 6.4 erlaubt das Changelog.
(ID:44482272)