Solr ist in Java geschrieben, sodass Sie das Servlet plattformunabhängig nutzen können. Befehle schreiben Sie normalerweise in HTTP (Hypertext Transfer Protocol), für zu speichernde Dateien nutzen Sie XML (Extensible Markup Language). Über ein API (application programming interface) bietet Apache Solr auch Python- und Ruby-Entwicklern ihre gewohnte Programmiersprache. Denjenigen, die normalerweise mit der JavaScript Object Notation (kurz: JSON) arbeiten, bietet hingegen ElasticSearch die optimale Umgebung. Über ein API kann Solr aber auch mit diesem Format arbeiten.
Zwar basiert der Such-Server auf Lucene und fügt sich auch nahtlos in dessen Architektur ein, doch funktioniert Solr auch allein. Es ist kompatibel mit Server-Containern wie Apache Tomcat.
Indexierung für genaue Suchergebnisse – in Sekundenbruchteilen
Strukturell gesehen liegt dem Servlet eine invertierte Datei (Englisch: inverted index) zugrunde. Dafür nutzt Solr klassischerweise die Bibliothek von Lucene. Invertierte Dateien sind eine Unterart des Datenbankindex. Sie sollen den Aufruf von Informationen beschleunigen. Innerhalb der Bibliothek speichert der Index Inhalte ab. Das können Wörter oder Zahlen sein. Sucht ein Nutzer auf einer Webpräsenz nach bestimmten Inhalten, gibt die Person meist ein oder zwei themenrelevante Suchbegriffe ein. Anstatt die gesamte Website mit Crawlern nach diesen Wörtern abzusuchen, nutzt Solr dann die Bibliothek.
Diese indiziert alle wichtigen Schlagwörter nahezu in Echtzeit und verbindet sie mit Dokumenten der Website, in denen die gesuchten Wörter vorkommen. Die Suche durchläuft dabei lediglich den Index, um einen Begriff zu finden. Die Ergebnisliste zeigt alle Dokumente an, die laut Index mindestens einmal dieses Wort enthalten. Diese Art der Suche entspricht der analogen Suche innerhalb eines Fachbuchs: Suchen Sie am Ende des Buches im Register nach einem Schlagwort, finden Sie dort die Angabe, auf welchen Seiten innerhalb des gesamten Textes Sie den Begriff finden. Dort blättern Sie einfach hin. Die vertikale Websuche zeigt dementsprechend eine Ergebnisliste mit Verlinkungen zu den jeweiligen Dokumenten.
Damit dieser Prozess reibungslos funktioniert, muss man theoretisch jedes Mal, wenn ein neues Dokument in das Portfolio der Website eingeht, sämtliche Schlagwörter und Metadaten (zum Beispiel zum Autor oder Erscheinungsjahr) in die Bibliothek eintragen. Dadurch ist bei Lucene die Arbeit im Backend mitunter etwas mühselig. Doch durch Solr lassen sich solche Arbeitsschritte automatisieren.
Relevanz und Filter
Apache Solr nutzt die Ontologie und Taxonomie von Lucene, um besonders genaue Suchergebnisse auszugeben. Dabei helfen die Booleschen Variablen undTrunkierungen, die bereits aus Lucene bekannt sind. Dem Cache von Lucene fügt Solr einen Higher-Level-Cache hinzu. Das heißt, das Servlet merkt sich häufig gestellte Suchanfragen, auch wenn diese aus komplexen Variablen bestehen. So optimiert es die Suchgeschwindigkeit.
Wollen Sie Nutzer auf Ihrer Webseite halten, sollten Sie ihnen eine gute User Experience bieten. Dazu gehört insbesondere, die richtigen Angebote zu machen. Suchen Ihre Besucher beispielsweise nach Informationen über Hühnerhaltung, sollten Texte über deren Aufzucht und Fressverhalten als erste Suchergebnisse oben in der Liste erscheinen. Rezepte mit Huhn oder gar Filme über Hühner sollten hingegen nicht zu den Suchergebnissen gehören oder zumindest weiter unten erscheinen.
Unabhängig davon, ob User nach einem bestimmten Begriff suchen oder ob sie am Ende eines spannenden Artikels interessante Themenvorschläge mit internen Verlinkungen angezeigt bekommen sollen: In beiden Fällen ist die Relevanz der Ergebnisse das A und O. Und damit dem Suchenden auch tatsächlich nur für ihn relevante Suchergebnisse angezeigt werden, nutzt Solr das Tf-idf-Maß.