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]
Langfristige Perspektive für Kupfer bestens
Herisau, 03.06.2026 (PresseBox) - Anzeige/Werbung - Dieser Artikel wird verbreitet im Namen von Axo Metals Corp. und Mogotes Metals Inc., mit der die SRC swiss resource capital AG bezahlte IR-Beraterverträge unterhält · Ersteller:  SRC swiss resource capital AG · Autorin:  Ingrid Heinritzi · Erstveröffentlichung:  03.06.2026, 16: 55 Uhr Zürich/Berlin · […] (00)
vor 11 Stunden
Urteil gegen «Maskenmann» in Frankreich erwartet
Nantes (dpa) - Im Prozess gegen den in Deutschland bereits wegen dreifachen Kindsmordes verurteilten sogenannten Maskenmann wird in Frankreich an diesem Donnerstag das Urteil wegen eines weiteren Mordfalls erwartet. Der 55-jährige Martin N. muss sich vor Gericht im westfranzösischen Nantes wegen des Mordes an dem damals zehnjährigen Jonathan im April […] (00)
vor 19 Minuten
audible
Audible ist der führende Anbieter für Hörbücher und Hörspiele. Mit einer riesigen Auswahl an Titeln aus allen Genres bietet Audible ein unvergleichliches Hörerlebnis. Egal, ob du spannende Thriller, […] (02)
vor 6 Stunden
Smartphone
Bonn (dpa) - Die Internetnutzung der Menschen in Deutschland ist im Vergleich zum Vorjahr spürbar zurückgegangen. Wie die aktuelle und repräsentative «Postbank Digitalstudie 2026» zeigt, verbringt die Bevölkerung im Schnitt noch 67,4 Stunden pro Woche im Netz. Das entspricht einem Rückgang von rund fünf Stunden gegenüber 2025. Maßgeblich für diese […] (00)
vor 19 Minuten
Hakuoki Memoirs: Drifting Clouds erscheint erstmals auf Englisch für Nintendo Switch
Fans von Otome-Games dürfen sich auf eine weitere Veröffentlichung aus dem beliebten Hakuoki-Universum freuen. Publisher eastasiasoft hat bekannt gegeben, erneut mit Idea Factory zusammenzuarbeiten, um Hakuoki Memoirs: Drifting Clouds erstmals offiziell auf Englisch zu veröffentlichen. Die Nintendo-Switch-Version wird englische Texte sowie die […] (00)
vor 6 Stunden
Amazon stoppt neue «Stargate»-Serie
Das bereits bestellte Projekt von Martin Gero wird nicht umgesetzt. Rückschlag für Fans des Science-Fiction-Klassikers «Stargate SG-1»: Wie „Variety“ berichtet, hat Amazon MGM Studios die Entwicklung der geplanten neuen «Stargate»-Serie eingestellt. Das Projekt war erst im November 2025 mit einer direkten Serienbestellung angekündigt worden. Als Autor, Showrunner und Executive Producer war […] (01)
vor 5 Stunden
Fußball: Nationalmannschaft, vor der WM-Endrunde
Chicago (dpa) - Kai Havertz kann endlich als WM-Nachzügler loslegen. «Ich freue mich hier zu sein jetzt. Die Vorfreude war das ganze Jahr schon da. Und persönlich war es für mich wichtig, so früh wie möglich zur Mannschaft zu stoßen», sagte der 26-Jährige nach seiner Ankunft im Kreise der Fußball-Nationalmannschaft. Der Offensivspieler will in Chicago […] (00)
vor 7 Stunden
bitcoin, crypto, finance, coin, money, currency, cryptocurrency, blockchain, investment, closeup
Der Kurs von HYPE hält sich über $70, obwohl der Markt mit Verkaufsdruck und Unsicherheit konfrontiert ist, die viele Krypto-Assets in den letzten Sitzungen belastet haben. Die Fähigkeit des Tokens, dieses Niveau zu halten, während das breitere Ökosystem kämpft, ist ein Signal – und Daten von Arkham Intelligence zeigen institutionelle Transaktionen, die […] (00)
vor 32 Minuten
 
SDZeCOM gewinnt Go-To-Market Award von Stibo Systems
Aalen, 03.06.2026 (PresseBox) - Der erfahrene Systemimplementierer und […] (00)
Plasmamedikamente sind eine vielversprechende Behandlungsmöglichkeit
Leipzig, 03.06.2026 (PresseBox) - Je mehr Plasma gespendet wird, umso mehr […] (00)
Zwischen Seen, Teichen und Flüssen: Sommererlebnisse in der Oberlausitz
Bautzen, 03.06.2026 (lifePR) - Die Temperaturen steigen, die Sommerferien rücken näher. […] (00)
Weitere Entwicklung zum Buckelwal in der Ostsee
Anholt (dpa) - Für den als «Timmy» bekannten Buckelwal steht der letzte Akt vor den […] (00)
⏰  Hemden.de: Bis zu 76% Rabatt + 20% Extra-Rabatt auf ALLE Hemden
Herren unter uns auf der Suche nach einem neuen, schicken Outfit? Bei Hemden.de […] (03)
cryptocurrency, business, finance, money, wealth, gold, cash, monetary, investment, ethereum
Der Ethereum-Kurs hat einen erneuten Rückgang erlebt und ist unter die Marke von […] (00)
Ein Mann sitzt mit Laptop am Küchentisch
Den Haag/Berlin (dpa/tmn) - Egal ob Sport, Filme oder Serien: Viele Streaming- oder […] (02)
Prime Video erzählt die Geschichte eines Schneeballsystems
Die neue indische Serie «The Pyramid Scheme» begleitet einen jungen Mann, dessen Traum vom […] (00)
 
 
Suchbegriff