Neuronale Suche mit Dense Vector Search in Apache Solr
Wie man eine Dense Vector Search unter der Verwendung von Python auf Apache Solr ermöglichen kann und wie sich die Suchergebnisse von klassischen Suchen unterscheiden.

15. Juni 2025, 10:26 Uhr · Quelle: Pressebox
Neuronale Suche mit Dense Vector Search in Apache Solr ermöglicht die Indexierung und Suche von semantischen Vektoren, was die Suchergebnisse erheblich verbessert. Durch den Einsatz von Deep Learning-Modellen können relevantere und kontextbezogene Ergebnisse gefunden werden, was traditionelle Suchmethoden übertrifft.

Augsburg, 15.06.2025 (PresseBox) - Die Entwicklung von Natural Language Processing und Machine Learning in den letzten Jahren bietet faszinierende Möglichkeiten im Bereich des Information Retrievals. Vor allem für das Erkennen von semantischen Zusammenhängen wird Neural Language Processing auch in der Suche (oft als neuronale Suche bezeichnet) eingesetzt. Neuronale Suche wurde im Jahr 2022 mit der Version 9.0 auch in Apache Solr eingeführt und bietet die Möglichkeit, eine Dense Vector Search in Solr durchzuführen. Dense Vector Search ist ein Feature vonApache Solr,das die Indexierung und die Suche von Dense Numerical Vektoren ermöglicht. Sowohl die Query als auch die Dokumente werden dabei als Vektoren repräsentiert. Deep Learning Modelle können verwendet werden, um diese Repräsentation zu schaffen. Dense Vector Search von Apache Solr gehört zu den sogenannten neural-network-based Methoden, die ein Teil des Neural Information Retrievals sind. In diesem Blogbeitrag möchte ich Ihnen gerne folgendes Thema vorstellen: Wie man eine Dense Vector Search unter der Verwendung von Python auf Apache Solr ermöglichen kann und wie sich die Suchergebnisse von klassischen Suchen unterscheiden.

Was ist eine Vektorsuche?

Damit ein Computer menschenlesbaren Text verstehen kann, muss man den Text in ein maschinenlesbares Format umwandeln. Eine Vektorsuche ist eine Methode, die in Data Retrieval und Information Retrieval-Systemen verwendet wird, um Elemente oder Dokumente zu finden, die einem bestimmten Suchvektor ähnlich oder eng mit ihm verbunden sind. Bei der Vektorsuche ist es möglich, verschiedene Datenpunkte wie Bilder, Texte sowie Audio-Dateien als Vektoren zu repräsentieren. Das Ziel der Vektorsuche ist es, effizient die relevantesten Vektoren zu finden, die einem Suchvektor ähnlich bzw. am ähnlichsten sind und diese abzurufen.

Unterschied zwischen Sparse und Dense Vektoren

Der größte Unterschied zwischen Sparse und Dense Vektoren ist, dass die ersten viele Null-Einträgen enthalten, während die zweiten mehrere Einträge beinhalten, die nicht „null“ sind. Das hat einen großen Einfluss auf das Suchergebnis.

Mit Sparse Vektoren werden alle Dimensionen durchsucht, um unter Tausenden Nullen ein paar Einsen (=relevante Informationen) zu finden. Ein traditioneller, invertierter Index speichert den Text auf Sparse Vektoren mit großer Anzahl an Dimensionen. Sogenannte Tokenizer können verwendet werden, um Sparse Vektoren direkt aus dem Text zu generieren. Alle üblichen, in Solr verfügbaren Query Parser können dann für die (textuelle) Suche verwendet werden.

In Dense Vektoren hingegen werden semantische Informationen (=Informationen über die Bedeutung des Textes) mit einer festen oder begrenzten Anzahl von Dimensionen gespeichert. Die Generierung von Dense Vektoren ist komplexer, da Deep Learning Modelle (wie BERT) dafür zurate gezogen werden müssen. Auch die Suche in Solr erfordert einen gesonderte Query Parser: knn (k-neareast neigbors). Dieser Query Parser findet zu einer Sucheingabe in Vektorformat die k Dokumente, deren gespeicherte Dense Vektoren dem Such-Vektor am ähnlichsten sind. Wie das in Solr genau funktioniert, wird im Folgenden anhand eines Beispiels im Detail beschrieben.

Dense Vector Search auf Apache Solr mit Python

Was innerhalb von Solr gemacht werden muss

Wir verwenden für das folgende Beispiel die Solr-Version 9.4.1. Um Dense Vector Search in Solr zu ermöglichen, muss als erstes das Schema (meist in der Datei „managed-schema“ oder „schema.xml“ zu finden) angepasst werden. Im Schema muss ein neues Feld und der passende Feld-Typ hinzugefügt werden:

Der neue Feld-Typ „knn_vector“ verwendet die Klasse DenseVectorField mit 384 Dimensionen. Je nach Modell kann die Anzahl an benötigten Dimensionen variieren. Für unser Beispiel benötigen wir insgesamt drei Felder: „id“ (die ID des Dokuments), „text“ und „vector“. In „text“ speichern wir den entsprechenden Text und im Vector-Feld dann die dafür generierten Vektor Embeddings.

Diese Konfiguration nutzen wir nun, um eine Collection in Solr zu erstellen.

Was außerhalb von Solr gemacht werden muss

1. Zuerst muss das richtige Modell ausgewählt werden, um die Vektor Embeddings zu generieren. Für diesen Zweck stellt die Open-Source-Plattform für Künstliche Intelligenz (KI) „Hugging Face“, zahlreiche, vortrainiert State Of The Art Modelle zur Verfügung. Wir verwenden das Modell „all-MiniLM-L12-v2“ vom SentenceTransformers Framework, das auf mehr als einer Billion von Trainingsinstanzen trainiert wurde. Es handelt sich um ein Natural Language Processing Modell, dass auf dem BERT Modell basiert ist und Sätze in Vektor Embeddings mit fester Anzahl von 384 Dimensionen umwandelt.

2. Nachdem das Modell ausgewählt wurde, muss die Python-Umgebung dementsprechend konfiguriert werden. Die Frameworks und Packages, die benötigt werden, sind: torch, sentence_transformers, pysolr, und pandas (optional für die Vorverarbeitung der Daten). Mit Hilfe von diesen Frameworks kann man mit Python die Textdaten in Vektor Embeddings transformieren und die Embeddings in einer Datei speichern. Pysolr ist ein leichter Python-Wrapper, der eine Verbindung zwischen Python und Apache Solr herstellen kann. Diese Verbindung nutzen wir für die Indexierung der Textdokumente und der Vektor Embeddings in Solr. Für das Beispiel haben wir 200 Dokumente mit entsprechenden Vektoren indexiert.

3. Wenn man die Textdokumente und ihre Vektor Embeddings indexiert hat, ist der nächste Schritt, die Queries, die man für die Suche verwenden möchte, ebenfalls in Vektor Embeddings zu transformieren. Dieser Schritt ist notwendig, da Solr selbst noch keine Möglichkeit bietet, den Text der Suchanfrage automatisch in Vektoren zu transformieren.

Die Daten

Wir haben die Daten, die wir für dieses Beispiel verwenden, mit ChatGPT generieren lassen. Wir haben ChatGPT gebeten, Kundenbewertungen von verschiedenen Produkten wie Kameras, Handys und Laptops (auf Englisch) zu generieren. Das Ergebnis waren 200 positive und negative Kundenbewertungen, die wir für unsere experimentelle, neuronale Suche verwendet haben.

Vergleich zwischen lexikalischer Suche und Dense Vector Search

Nachdem die Dokumente in Solr indexiert wurden, können wir mit einer Neuronale Suche loslegen. Zuerst formulieren wir eine lexikalische Suche, ohne das Dense Vector Feld zu verwenden, und beobachten das Ergebnis. Wir haben unsere Daten untersucht und wir wissen, dass das Wort „excited“ in einem Dokument vorkommt. Unsere Query ist „am excited“.

Der Solr Parser versucht Dokumente zu finden, in denen die Begriffe von unserer Suche vorkommen, und findet wie erwartet das eine Dokument, in dem „am excited“ enthalten ist.

Aber welche Ergebnisse findet nun dieselbe Query („am excited“), wenn wir stattdessen die Dense Vector Search verwenden? Für die Suche verwenden wir nun keinen Text, sondern die Vektor Embeddings Repräsentation der Query in Kombination mit dem knn-Query Parser.

Der „knn“ Query Parser findet die k nächsten Dokumente zum Zielvektor, „f“ legt das DenseVectorField (hier „vector“) fest, in dem gesucht werden soll, und „topK“ definiert wie viele Ergebnisse zurückgegeben werden sollen. Danach folgt der transformierten Query Vektor (der wie oben erwähnt, außerhalb von Solr erstellt werden muss).

Die Dense Vector Search liefert auch das Dokument mit dem Wort „excited“ als Ergebnis an erster Position. Im Gegensatz zur lexikalischen Suche berücksichtigt die Dense Vector Search aber auch den Kontext des Suchbegriffes im Satz. Das zeigt sich in den anderen beiden Ergebnissen, welche die liefert. Der knn Query Parser gibt Dokumente zurück, die genau wie „am excited“ eine besonders positive Bewertung wie „ecstatic“, „amazed“ oder „impressed“ beinhalten.

Unten sehen Sie noch die Ergebnisse von einem Vergleichsbeispiel zwischen einer lexikalischen Suche und einem Dense Vector Search für die Query „refund“. Es gibt in unseren Daten ein Dokument, das das Wort „refund“ beinhaltet, und insgesamt zwei Dokumente, in denen die Wortkombination „money back“ vorkommt.

Die Dense Vector Search hat sowohl das Dokument mit dem Wort „refund“ gefunden als auch die zwei Dokumente, in denen von „money back“ gesprochen wird. Auch in diesem Beispiel liefert die Dense Vector Search also zusätzlich zu den textuell passenden Ergebnissen auch solche, die semantisch zur Sucheingabe passen.

Fazit

Die Nutzung von Solr für die textbasierte Suche ist sehr weit verbreitet. Die Neuronale Suche auf Basis von Dense Vektoren wird hingegen noch nicht so häufig verwendet. Dass die Dense Vector Search in Solr eine sehr gute Möglichkeit ist, die Suchergebnisse semantisch zu verbessern, konnten wir hoffentlich in unserem Beitrag zeigen. Darüber hinaus können die Dense Vektoren in Solr aber auch für andere Aufgaben aus dem Machine Learning genutzt werden, wie Clustering, Klassifikation oder Regression. Lassen Sie uns gerne zusammen evaluieren, wie sich Ihre Solr-Suche mit Hilfe der Dense Vektoren auf das nächste Level heben lässt.

Software
[pressebox.de] · 15.06.2025 · 10:26 Uhr
[0 Kommentare]
BRAZZELTAG 2026 nimmt Fahrt auf
Sinsheim, 01.04.2026 (lifePR) - Der BRAZZELTAG am 9. und 10. Mai 2026 im Technik Museum Speyer rückt näher und das Programm nimmt konkrete Formen an. Erste Highlights wie Dragster-Auftritte, Stunt-Performances sowie Mitfahrangebote und Einblicke in begehbare Großexponate sind bereits bestätigt. Zusätzlich profitieren Besucher von einer Kooperation mit […] (00)
vor 7 Stunden
Reiner Haseloff (Archiv)
Magdeburg - Sachsen-Anhalts früherer Ministerpräsident Reiner Haseloff (CDU) hat sich für eine Abschwächung der Klimaziele ausgesprochen. "Die ehrgeizigen Ziele zum Einsparen von Kohlendioxid passen nicht mehr zu einer schwierigen Gesamtlage, in der wir Krieg haben", sagte er der "Süddeutschen Zeitung" (Donnerstagausgabe) Sorge bereiteten ihm […] (01)
vor 43 Minuten
Dan Levy hat 'großen Trost' nach Catherine O’Haras Tod gefunden
(BANG) - Dan Levy hat "großen Trost" darin gefunden zu sehen, "wie sehr" die verstorbene Catherine O’Hara geliebt wurde. Die Schauspielerin starb im Januar im Alter von 71 Jahren nach kurzer Krankheit. Levy kannte sie persönlich, da er Jahre lang mit ihr gemeinsam für die Comedy-Serie 'Schitt’s Creek' vor der Kamera stand. Und er 42-jährige weiß, dass […] (01)
vor 7 Stunden
«Vehicle Motion Cues» auf einem iPhone
Berlin (dpa/tmn) - Geschichten, Nachrichten, Chats, Social Media - da möchte man vielleicht auch im Auto dabeibleiben. Und dann: komisches Bauchgefühl, Schwindel, Übelkeit? Das liegt daran, dass das Gleichgewichtsorgan andere Informationen aufnimmt, als von den Augen registriert werden. Das Auto bewegt sich, der Bildschirminhalt auf dem Smartphone steht […] (00)
vor 39 Minuten
PlayStation Plus-Titel für den neuen Monat
PlayStation Plus-Mitglieder erwarten schon bald drei spannende Titel. Ab dem 7. April können folgende Spiele heruntergeladen werden: Lords of the Fallen  (PS5) Tomb Raider I-III Remastered Starring Lara Croft  (PS5 & PS4) SWORD ART ONLINE Fractured Daydream  (PS5) Bis zum 6. April besteht zudem die Chance, die Februar-Spiele  PGA Tour […] (00)
vor 4 Stunden
CNN zeigt «K-Everything» mit Daniel Dae Kim ab Mai
Die neue Doku-Serie beleuchtet den globalen Einfluss Südkoreas auf Kultur, Medien und Lifestyle. Der Nachrichtensender CNN hat den Start seiner neuen Originalserie K-Everything angekündigt. Die vierteilige Reihe wird ab dem 9. Mai jeweils samstags um 20: 00 Uhr bei CNN International ausgestrahlt und steht parallel auch im Streaming-Angebot des Senders zur Verfügung. Moderiert und produziert […] (00)
vor 1 Stunde
Bosnien-Herzegowina - Italien
Rom/Zenica (dpa) - Am Tag nach dem erneuten Scheitern herrscht von Südtirol bis Sizilien überall la grande tristezza: die große Trauer. In Italiens Cafés gibt es unter regenverhangenem Himmel beim morgendlichen Cappuccino nur ein Thema: Wie konnte die Squadra Azzurra das alles entscheidende Playoff-Spiel in Bosnien-Herzegowina vergeigen und zum dritten […] (08)
vor 9 Stunden
man, business, adult, suit, bitcoin, cryptocurrency, blockchain, crypto, formal, confident
Eine größere Bedrohung als nur für Kryptowährungen Die Diskussion um die Bedrohung durch Quantencomputer für Kryptowährungen hält an. Verschiedene Stimmen aus der Krypto- und Technologiewelt, darunter auch der ehemalige Binance-CEO Changpeng Zhao, haben auf Berichte reagiert, die zeigen, dass die elliptische Kurven-Kryptographie von Bitcoin mit weniger […] (00)
vor 54 Minuten
 
Makenita tritt der Canadian Association of Defence and Security Industries (CADSI) bei
Vancouver, B.C., 01.04.2026 (PresseBox) - Makenita Resources Inc. (das „Unternehmen“ oder […] (00)
KW suspensions erweitert Klassik-Programm:
Fichtenberg (Deutschland) / Rotkreuz (Schweiz), 01.04.2026 (PresseBox) - Wie kaum […] (00)
HYTN setzt bedeutenden kommerziellen Meilenstein
Lüdenscheid, 01.04.2026 (PresseBox) - HYTN […] (00)
Abbildung des Siegerentwurfs des Zukunftszentrums (Archiv)
Berlin - Die Kulturwissenschaftlerin Uta Bretschneider wird ab dem 1. Mai 2026 die […] (00)
Gil Ofarim
(BANG) - Der Sieg von Gil Ofarim im Dschungelcamp 2026 bleibt nicht ohne […] (00)
Ehemaliger Angestellter: Nintendo erzürnt über Zelda- und Star Fox-Leaks!
Der gewaltige Leak bei Nintendo, welcher die ganze Videospielwelt aufhorchen lies, […] (00)
Harry Kane
London (dpa) - Ohne den kurzfristig ausgefallenen Stürmerstar Harry Kane hat Englands […] (02)
Razer Pro Type Ergo – Integrierte Produktivitäts‑Optionen, sofort einsatzbereit
Razer, die weltweit führende Lifestyle‑Marke für Gamer, hat heute die Razer Pro Type […] (00)
 
 
Suchbegriff