Apache Solr Tutorial

Apache Solr Tutorial
In dieser Lektion werden wir sehen, wie wir Apache Solr verwenden können, um Daten zu speichern und wie wir verschiedene Abfragen darauf ausführen können.

Was ist Apache Solr

Apache Solr ist eine der beliebtesten NOSQL-Datenbanken, mit der Daten gespeichert und in naher Echtzeit abfragen können. Es basiert auf Apache Lucene und ist in Java geschrieben. Genau wie Elasticsearch unterstützt es Datenbankabfragen über REST -APIs. Dies bedeutet, dass wir einfache HTTP -Aufrufe verwenden und HTTP -Methoden wie GET, Post, Puting, Löschen usw. verwenden können. Zugriff auf Daten. Es bietet auch die Option, Daten in Form von XML oder JSON über die Rest -APIs zu erhalten.

Architektur: Apache Solr

Bevor wir mit Apache Solr arbeiten können, müssen wir die Komponenten verstehen, die Apache Solr ausmachen. Schauen wir uns einige Komponenten an, die es hat:

Apache Solr Architektur

Beachten Sie, dass in der obigen Abbildung nur wichtige Komponenten für SolR gezeigt sind. Lassen Sie uns auch hier ihre Funktionalität verstehen:

  • Anfordern von Handlern: Die Anfragen, die ein Kunde an Solr stellt, werden von einem Anfragehandler verwaltet. Die Anforderung kann alles aus dem Hinzufügen eines neuen Datensatzes zum Aktualisieren eines Index in Solr sein. Handler identifizieren die Art der Anforderung aus der HTTP -Methode, die mit der Anforderungszuordnung verwendet wird.
  • Suchkomponente: Dies ist eine der wichtigsten Komponenten -Solr. Suchkomponente kümmert sich um die Durchführung von Suchbezogenen Operationen wie Unschärfe, Rechtschreibprüfungen, Term -Abfragen usw.
  • Parser abfragen: Dies ist die Komponente, die die Abfrage, die ein Kunde an den Anforderungshandler übergeht, tatsächlich analysiert und eine Abfrage in mehrere Teile unterteilt
  • Antwortschreiber: Diese Komponente ist für die Verwaltung des Ausgangsformats für die an den Motor übergebenen Abfragen verantwortlich. Der Antwortautor ermöglicht es uns, eine Ausgabe in verschiedenen Formaten wie XML, JSON usw. bereitzustellen.
  • Analysator/Tokenizer: Lucene Engine versteht Abfragen in Form mehrerer Tokens. Solr analysiert die Abfrage, zerlegt sie in mehrere Token und übergibt sie an den Lucene -Motor.
  • Aktualisieren Sie den Anfrageprozessor: Wenn eine Abfrage ausgeführt wird und Operationen wie die Aktualisierung eines Index und die damit verbundenen Daten ausführt, ist die Aktualisierungsanforderungsprozessorkomponente für die Verwaltung der Daten im Index verantwortlich.

Erste Schritte mit Apache Solr

Um Apache Solr zu verwenden, muss es auf dem Computer installiert werden. Lassen Sie dazu Apache Solr auf Ubuntu lesen.

Stellen Sie sicher, dass Sie über eine aktive Solr -Installation verfügen, wenn Sie Beispiele ausprobieren möchten, die wir später in der Lektion präsentieren, und die Administratorseite ist auf Localhost erreichbar:

Apache Solr Homepage

Daten einfügen

Betrachten wir zu Beginn eine Sammlung in Solr, die wir als als nennen wir als lINUX_HINT_Collection. Es ist nicht erforderlich, diese Sammlung explizit so zu definieren, wie beim Einfügen des ersten Objekts die Sammlung automatisch erstellt wird. Versuchen wir unseren ersten REST -API -Anruf, um ein neues Objekt in die genannte Sammlung einzufügen lINUX_HINT_Collection.

Daten einfügen

curl -x post -h 'content -type: application/json'
'http: // localhost: 8983/solr/linux_hint_collection/update/json/docs'--data-binary ''

"ID": "IDUYE",
"Name": "Shubham"
'

Hier ist, was wir mit diesem Befehl zurückbekommen:

Befehl zum Einfügen von Daten in Solr einfügen

Daten können auch mit der Solr -Homepage eingefügt werden, die wir uns zuvor angesehen haben. Versuchen wir es hier, damit die Dinge klar sind:

Fügen Sie Daten über Solr -Homepage ein

Da SolR eine hervorragende Interaktion mit HTTP -Rastful -APIs hat, werden wir von nun an die DB -Interaktion mit denselben APIs nachweisen und uns nicht viel darauf konzentrieren, Daten über die Solr -Webseite einzuführen.

Listen Sie alle Sammlungen auf

Wir können alle Sammlungen in Apache SolR auch mit einer REST -API auflisten. Hier ist der Befehl, den wir verwenden können:

Listen Sie alle Sammlungen auf

curl http: // localhost: 8983/solr/admin/kollektionen?Aktionen = Liste & wt = json

Sehen wir uns die Ausgabe für diesen Befehl an:

Wir sehen hier zwei Sammlungen, die in unserer Solr -Installation existieren.

Objekt durch ID erhalten

Lassen Sie uns nun sehen, wie wir Daten aus der Solr -Sammlung mit einer bestimmten ID erhalten können. Hier ist der Befehl rest api:

Objekt durch ID erhalten

curl http: // localhost: 8983/solr/linux_hint_collection/get?id = iduye

Hier ist, was wir mit diesem Befehl zurückbekommen:

Holen Sie sich alle Daten

In unserer letzten REST -API haben wir Daten mit einer bestimmten ID befragt. Dieses Mal werden wir alle Daten in unserer Solr -Sammlung präsentieren lassen.

Objekt durch ID erhalten

curl http: // localhost: 8983/solr/linux_hint_collection/select?q =*:*

Hier ist, was wir mit diesem Befehl zurückbekommen:

Beachten Sie, dass wir im Abfrageparameter '*:*' verwendet haben. Dies gibt an, dass SolR alle in der Sammlung vorhandenen Daten zurückgeben sollte. Selbst wenn wir angegeben haben, dass alle Daten zurückgegeben werden sollten, versteht Solr, dass die Sammlung möglicherweise eine große Datenmenge enthält und so, Es wird nur die ersten 10 Dokumente zurückgeben.

Alle Daten löschen

Bisher haben alle APIs, die wir ausprobiert haben, ein JSON -Format verwendet. Diesmal versuchen wir das XML -Abfrageformat. Die Verwendung von XML-Format ist JSON sehr ähnlich, da XML ebenfalls selbstdekriptiv ist.

Versuchen wir einen Befehl, um alle Daten zu löschen, die wir in unserer Sammlung haben.

Alle Daten löschen

curl "http: // localhost: 8983/solr/linux_hint_collection/update?commit = true "-h" content-type: text/xml "--data-binär"*:*"

Hier ist, was wir mit diesem Befehl zurückbekommen:

Löschen Sie alle Daten mithilfe der XML -Abfrage

Wenn wir jetzt erneut versuchen, alle Daten zu erhalten, werden wir feststellen, dass jetzt keine Daten verfügbar sind:

Holen Sie sich alle Daten

Gesamtobjektzahl

Für einen endgültigen Curl -Befehl sehen wir einen Befehl, mit dem wir die Anzahl der Objekte finden können, die in einem Index vorhanden sind. Hier ist der Befehl für dasselbe:

Gesamtobjektzahl

curl http: // localhost: 8983/solr/linux_hint_collection/query?debug = query & q =*:*

Hier ist, was wir mit diesem Befehl zurückbekommen:

Anzahl der Objekte zählen

Abschluss

In dieser Lektion haben wir uns angesehen, wie wir Apache Solr verwenden können und Abfragen mit Curl sowohl im JSON- als auch im XML -Format übergeben können. Wir haben auch gesehen, dass das Solr -Administratorfeld auf die gleiche Weise wie alle von uns untersuchten Curl -Befehle nützlich ist.