Apache Solr - Architektur
In diesem Kapitel werden wir die Architektur von Apache Solr diskutieren. Die folgende Abbildung zeigt ein Blockdiagramm der Architektur von Apache Solr.
Solr-Architektur ─ Bausteine
Im Folgenden sind die wichtigsten Bausteine (Komponenten) von Apache Solr aufgeführt:
Request Handler- Die Anforderungen, die wir an Apache Solr senden, werden von diesen Anforderungshandlern verarbeitet. Die Anforderungen können Abfrageanforderungen oder Indexaktualisierungsanforderungen sein. Basierend auf unserer Anforderung müssen wir den Anforderungshandler auswählen. Um eine Anfrage an Solr zu übergeben, ordnen wir den Handler im Allgemeinen einem bestimmten URI-Endpunkt zu, und die angegebene Anfrage wird von ihm bearbeitet.
Search Component- Eine Suchkomponente ist eine Art (Funktion) der Suche, die in Apache Solr bereitgestellt wird. Dies kann Rechtschreibprüfung, Abfrage, Facettierung, Hervorhebung von Treffern usw. sein. Diese Suchkomponenten werden als registriertsearch handlers. Mehrere Komponenten können in einem Suchhandler registriert werden.
Query Parser- Der Apache Solr-Abfrageparser analysiert die Abfragen, die wir an Solr übergeben, und überprüft die Abfragen auf syntaktische Fehler. Nachdem die Abfragen analysiert wurden, werden sie in ein Format übersetzt, das Lucene versteht.
Response Writer- Ein Antwortschreiber in Apache Solr ist die Komponente, die die formatierte Ausgabe für die Benutzerabfragen generiert. Solr unterstützt Antwortformate wie XML, JSON, CSV usw. Wir haben unterschiedliche Antwortschreiber für jeden Antworttyp.
Analyzer/tokenizer- Lucene erkennt Daten in Form von Token. Apache Solr analysiert den Inhalt, teilt ihn in Token auf und gibt diese Token an Lucene weiter. Ein Analysator in Apache Solr untersucht den Text von Feldern und generiert einen Token-Stream. Ein Tokenizer zerlegt den vom Analysator vorbereiteten Token-Stream in Token.
Update Request Processor - Immer wenn wir eine Aktualisierungsanforderung an Apache Solr senden, wird die Anforderung über eine Reihe von Plugins (Signatur, Protokollierung, Indizierung) ausgeführt, die zusammen als bezeichnet werden update request processor. Dieser Prozessor ist für Änderungen wie das Löschen eines Feldes, das Hinzufügen eines Feldes usw. verantwortlich.