Apache Solr - Architektura
W tym rozdziale omówimy architekturę Apache Solr. Poniższa ilustracja przedstawia schemat blokowy architektury Apache Solr.
Architektura Solr ─ Bloki konstrukcyjne
Poniżej znajdują się główne bloki budulcowe (komponenty) Apache Solr -
Request Handler- Żądania, które wysyłamy do Apache Solr, są przetwarzane przez te programy obsługi żądań. Żądania mogą być żądaniami zapytań lub żądaniami aktualizacji indeksu. Na podstawie naszych wymagań musimy wybrać osobę obsługującą żądania. Aby przekazać żądanie do Solr, generalnie mapujemy program obsługi do określonego punktu końcowego URI i określone żądanie będzie przez niego obsługiwane.
Search Component- Komponent wyszukiwania to typ (funkcja) wyszukiwania dostępna w Apache Solr. Może to być sprawdzanie pisowni, zapytania, faceting, wyróżnianie trafień itp. Te komponenty wyszukiwania są rejestrowane jakosearch handlers. W module obsługi wyszukiwania można zarejestrować wiele składników.
Query Parser- Parser zapytań Apache Solr analizuje zapytania, które przekazujemy do Solr i weryfikuje zapytania pod kątem błędów składniowych. Po przeanalizowaniu zapytań tłumaczy je na format zrozumiały dla Lucene.
Response Writer- Moduł zapisujący odpowiedzi w Apache Solr to komponent, który generuje sformatowane dane wyjściowe dla zapytań użytkowników. Solr obsługuje formaty odpowiedzi, takie jak XML, JSON, CSV itp. Mamy różnych autorów odpowiedzi dla każdego typu odpowiedzi.
Analyzer/tokenizer- Lucene rozpoznaje dane w postaci tokenów. Apache Solr analizuje zawartość, dzieli ją na tokeny i przekazuje te tokeny Lucene. Analizator w Apache Solr bada tekst pól i generuje strumień tokenów. Tokenizer dzieli strumień tokenów przygotowany przez analizator na tokeny.
Update Request Processor - Za każdym razem, gdy wysyłamy żądanie aktualizacji do Apache Solr, żądanie jest uruchamiane przez zestaw wtyczek (podpis, logowanie, indeksowanie), zwanych łącznie update request processor. Ten procesor jest odpowiedzialny za modyfikacje, takie jak upuszczenie pola, dodanie pola itp.