Apache Solr Tutorial: Co je Solr? Architektura a instalace

Co je Apache Solr?

Apache Solr je open-source platforma vyhledรกvacรญho serveru napsanรก v Java jazyk od softwarovรฉ nadace Apache. Je vysoce ลกkรกlovatelnรฝ a pล™ipravenรฝ k nasazenรญ vyhledรกvaฤe pro zpracovรกnรญ velkรฉho objemu textovฤ› orientovanรฝch dat. รšฤelem pouลพitรญ Apache Solr je indexovat a prohledรกvat velkรฉ mnoลพstvรญ webovรฉho obsahu a poskytovat relevantnรญ obsah na zรกkladฤ› vyhledรกvacรญho dotazu.

Apache Solr je obal HTTP zaloลพenรฝ na REST-API kolem fulltextovรฉho vyhledรกvaฤe s nรกzvem Apache Lucene. Invertovanรฝ rejstล™รญk je seznam slov, kde kaลพdรฉ slovo odkazuje na dokumenty, ve kterรฝch je uloลพeno. Tรญmto zpลฏsobem zรญskรกte vลกechny dokumenty pro vyhledรกvacรญ dotaz โ€žguru99โ€œ jednoduchou operacรญ โ€žgetโ€œ.

Historie Apache Solr

  • 1999: Doug Cutting publikoval Lucene
  • 2004: Solr vyvinul v CNET Yonik Seeley jako internรญ projekt dรญlฤรญ spoleฤnosti
  • 2006: CNET publikuje zdrojovรฝ kรณd tรญm, ลพe jej daruje softwaru Apache Foundation
  • 2008: Vydรกn Solr 1.3 s vylepลกenรฝmi moลพnostmi vyhledรกvรกnรญ a vylepลกenรญmi vรฝkonu
  • 2010: Fรบze Lucene a Solr
  • 2012: Byla vydรกna verze Solr 4.0 s novou funkcรญ Solr Cloud
  • 2016: Vydรกn Solr 6.0, kterรฝ nabรญzรญ podporu pro provรกdฤ›nรญ paralelnรญch SQL dotazลฏ

Vlastnosti Apache Solr

Zde jsou dลฏleลพitรฉ funkce Apache Solr:

  • Automatickรฉ vyvaลพovรกnรญ zรกtฤ›ลพe
  • Otevล™enรก rozhranรญ zaloลพenรก na standardech โ€“ XML, JSON a HTTP
  • Doporuฤenรญ a nรกvrhy pravopisu jsou podporovรกny
  • Podpora automatickรฉho dokonฤovรกnรญ a geoprostorovรฉho vyhledรกvรกnรญ
  • Vestavฤ›nรฉ zabezpeฤenรญ pro autentizaci a autorizaci
  • Umoลพลˆuje provรกdฤ›t vรญcejazyฤnรฉ vyhledรกvรกnรญ klรญฤovรฝch slov
  • Automatickรฉ doplลˆovรกnรญ/pล™edvรญdรกnรญ psanรญ
  • Dรกvkovรฉ a streamingovรฉ zpracovรกnรญ
  • Vytvรกล™enรญ modelลฏ strojovรฉho uฤenรญ je snadnรฉ
  • Speciรกlnฤ› optimalizovanรฉ pro vysokoobjemovรฝ webovรฝ provoz
  • Komplexnรญ HTML obdivovacรญ rozhranรญ
  • Podporuje konfiguraci Schema i Schemaless
  • Fasetovรฉ vyhledรกvรกnรญ a filtrovรกnรญ
  • Centrรกlnรญ konfigurace pro celรฝ Cluster

Klรญฤovรฉ pojmy pouลพรญvanรฉ v Apache Solr

Nynรญ v tomto tutoriรกlu pro vyhledรกvaฤ Solr se dozvรญme o klรญฤovรฝch termรญnech pouลพรญvanรฝch v Apache Solr:

Klรญฤovรฝ termรญn Description
Solr Core Solr Core lze definovat jako index textลฏ a polรญ odvozenรฝch ze vลกech dokumentลฏ. Jedna instance Solr mลฏลพe mรญt jedno nebo vรญce jader Solr.

Core = instance konfigurace Lucene Index + Solr

Instance Solr Instance Solr je instance Solr spuลกtฤ›nรก v Java Virtuรกlnรญ stroj (JVM). V samostatnรฉm reลพimu nabรญzรญ pouze jednu instanci, zatรญmco v cloudovรฉm reลพimu mลฏลพete mรญt jednu nebo vรญce instancรญ.
Indexovรกnรญ Indexovรกnรญ je metoda pro pล™idรกvรกnรญ obsahu dokumentu do Solr Index. Apache Solr pouลพรญvรก techniku โ€‹โ€‹Apache Lucene Inverted Index.
Dokument Je to skupina polรญ a jejich hodnot. Dokument je zรกkladnรญ jednotka dat uloลพenรก v Apache Core. Jedno jรกdro Apache mลฏลพe obsahovat jeden nebo vรญce dokumentลฏ.
Pole Pole je pรกr klรญฤ-hodnota, kterรฝ uklรกdรก skuteฤnรก data v dokumentu. Klรญฤ urฤuje nรกzev pole a hodnotu obsahujรญcรญ tato data pole. Dokument mลฏลพe mรญt jedno nebo vรญce polรญ. Pouลพรญvรก ho Apache Solr k indexovรกnรญ obsahu dokumentu.
Klidnรก API Pro komunikaci se Solrem nenรญ nutnรฉ pouลพรญvat Java programovรกnรญ. Mรญsto toho poskytuje Apache Solr klidnรฉ sluลพby s tรญm komunikovat. Mลฏลพete odesรญlat dokumenty a pล™ijรญmat vรฝsledky v rลฏznรฝch formรกtech souborลฏ, jako jsou JSON, XML a CSV.
Fulltextovรฉ vyhledรกvรกnรญ Solr nabรญzรญ funkce pro fulltextovรฉ vyhledรกvรกnรญ, jako jsou tokeny, frรกze, kontrola pravopisu, automatickรฉ doplลˆovรกnรญ, zรกstupnรฉ znaky atd.
Sprรกvcovskรฉ rozhranรญ Solr nabรญzรญ snadno pouลพitelnรฉ, uลพivatelsky pล™รญvฤ›tivรฉ, funkcemi pohรกnฤ›nรฉ uลพivatelskรฉ rozhranรญ. Pomocรญ rozhranรญ mลฏลพete provรกdฤ›t รบkoly, jako je sprรกva protokolลฏ, pล™idรกvรกnรญ, odstraลˆovรกnรญ, aktualizace a vyhledรกvรกnรญ dokumentลฏ.
Textovฤ› orientovanรฉ a seล™azenรฉ podle relevance Apache Solr se pouลพรญvรก k vyhledรกvรกnรญ textovรฝch dokumentลฏ a vรฝsledky jsou dodรกvรกny podle dotazu uลพivatele.
Uzel V cloudu Solr je kaลพdรก jednotlivรก instance znรกmรก jako uzel.
Cluster Cluster je kolekce uzlลฏ.
Sbรญrka Cluster mรก logickรฝ index, kterรฝ se takรฉ nazรฝvรก kolekce.
Stล™ep Je to malรก oblast kolekce, kterรก nabรญzรญ jednu nebo vรญce replik indexu.
Replika Replika je kopie fragmentu, kterรฝ bฤ›ลพรญ v uzlu.
Vลฏdce Je to replika รบlomku, kterรฝ posรญlรก poลพadavky Solr Cloud na zbytek replik.

Apache Solr Architecture

Nynรญ v tomto tutoriรกlu pro vyhledรกvรกnรญ Solr se pojฤme dozvฤ›dฤ›t o Apache Solr Archistruktura:

Apache Solr Architecture
Apache Solr Architecture

Apache Solr kompromituje nรกsledujรญcรญ komponenty

Dotaz

Analyzรกtor dotazลฏ analyzuje dotazy, kterรฉ musรญte pล™edat Solr. Ovฤ›ล™รญ vรกลก dotaz a zkontroluje syntaktickรฉ chyby. Po analรฝze dotazลฏ se pล™evede do formรกtu, kterรฝ Lucene znรก.

Zpracovatel ลพรกdosti

Poลพadavek odeslanรฝ do Apache Solr zpracovรกvรก obsluha poลพadavku. Poลพadavkem mลฏลพe bรฝt poลพadavek na dotaz nebo poลพadavek na aktualizaci indexu. Musรญte vybrat zpracovatele poลพadavkลฏ podle svรฝch poลพadavkลฏ. Chcete-li pล™edat poลพadavek Solr, musรญte namapovat obsluลพnou rutinu na konkrรฉtnรญ koncovรฝ bod adresy URL.

Odpovฤ›ฤ Writer

Zapisovatel odpovฤ›dรญ bude generovat formรกtovanรฉ vรฝstupy pro vstupnรญ dotazy. Podporuje rลฏznรฉ formรกty jako XML, JSON, CSV.atd. Pro rลฏznรฉ typy poลพadavkลฏ mลฏลพete mรญt rลฏznรฉ autory odpovฤ›dรญ.

Aktualizovat obsluลพnรฝ program

Kdyลพ odeลกlete poลพadavek na aktualizaci do Apache Solr, projde sadou pluginลฏ, signatur, protokolovรกnรญm a indexovรกnรญm. Tento proces je znรกmรฝ jako procesor poลพadavkลฏ na aktualizaci. Obsluลพnรก rutina aktualizace je takรฉ zodpovฤ›dnรก za รบpravy, jako je pล™idรกnรญ nebo odstranฤ›nรญ.ping podรกno atd.

Aplikace Apache Solr

editaci videa Pouลพรญvรกnรญ
Intranetovรฝ portรกl
  • Snadnรฝ pล™รญstup k vyhledรกvรกnรญ
  • Spuลกtฤ›nรญ aplikace
  • Upozornฤ›nรญ na novinky a udรกlosti
  • Ovฤ›ล™enรญ jednotnรฉho pล™ihlรกลกenรญ
Federovanรฝ klient
  • Zjednoduลกenรก prezentace
  • Vyhledรกvejte v celรฉm obsahu
  • Pouze autorizovanรฝ pล™รญstup
  • Prohlรญลพenรญ dokumentลฏ
Datovรฉ sady pล™รญstrojลฏ
  • Optimalizovรกno pro vฤ›dce
  • Nabรญdky zรกvislรฉ na datech
  • Specializovanรฉ mล™รญลพkovรฉ filtry
Regulaฤnรญ dokumenty
  • Urฤeno pro vรฝzkumnรญky
  • Bohatรฝ pล™รญstup k metadatลฏm
  • Tabulkovรฉ exporty
  • Zobrazit akcelerรกtor dokumentลฏ
Zabudovรกno do aplikace PLM
  • Nabรญzรญ lepลกรญ zรกลพitek z vyhledรกvรกnรญ, neลพ by mohl poskytnout RDBMS
  • Bezpeฤnostnรญ model s pozdnรญm vรกzรกnรญm
  • Akce dokumentu zobrazenรฉ na panelu nรกstrojลฏ

Jak nainstalovat Apache Solr?

Krok 1) Otevล™ete web a pokraฤujte k odbฤ›ru
Pล™ejdฤ›te na to https://trials.autocruitment.com, Kliknฤ›te na โ€žPokraฤovat k odbฤ›ruโ€œ.

Nainstalujte Apache Solr

Krok 2) Kliknฤ›te na Pล™ijmout podmรญnky
Na dalลกรญ strรกnce kliknฤ›te na Pล™ijmout podmรญnky.

Nainstalujte Apache Solr

Krok 3) Poฤkejte nฤ›jakou dobu
Dรกle Poฤkejte nฤ›jakou dobu a potรฉ je Poลพadavek po nฤ›jakรฉ dobฤ› pล™ijat.

Nainstalujte Apache Solr

Krok 4) Pokraฤujte do Konfigurace
Obnovte strรกnku a kliknฤ›te na โ€žPokraฤovat ke konfiguraciโ€œ

Nainstalujte Apache Solr

Krok 5) Pokraฤujte ke spuลกtฤ›nรญ
Ponechte vรฝchozรญ nastavenรญ a kliknฤ›te na โ€žPokraฤovat ke spuลกtฤ›nรญโ€œ.

Nainstalujte Apache Solr

Krok 6) Ponechte vรฝchozรญ nastavenรญ
Na dalลกรญ strรกnce Zachovat vรฝchozรญ nastavenรญ

  • Ujistฤ›te se, ลพe mรกte soubor pem klรญฤe
  • Kliknฤ›te na โ€žSpustitโ€œ

Nainstalujte Apache Solr

Uvidรญte tuto zprรกvu o รบspฤ›chu

Nainstalujte Apache Solr

Krok 7) Vลกimnฤ›te si veล™ejnรฉho DNS
V konzole EC2 si poznamenejte veล™ejnรฝ DNS vaลกรญ instance

Nainstalujte Apache Solr

Krok 8) Otevล™ete nรญลพe adresu URL
Pro pล™รญstup k Solr jednoduลกe pouลพijte URL

http://publicdns:8983

v naลกem pล™รญpadฤ› se stรกvรก

http://ec2-18-221-175-53.us-east-2.compute.amazonaws.com:8983

Nainstalujte Apache Solr

Poznรกmka: Pokud mรกte potรญลพe s pล™รญstupem k instanci, zmฤ›ลˆte ve svรฉ instanci pล™รญchozรญ a odchozรญ pravidla tak, aby povolila veลกkerรฝ provoz, jak je znรกzornฤ›no v nรญลพe uvedenรฉm pล™รญkladu dotazu Solr:

Nainstalujte Apache Solr

Elasticsearch vs. Apache Solr

parametry Apache Solr Elastickรฉ vyhledรกvรกnรญ
Pล™รญroda Jednรก se o open source projekt. Nejednรก se o open-source projekt.
Statickรฝ stav Statickรฉ v shema.xml Statickรฉ v elasticsearch.yml
Formรกt XML, CSV, JSON Pouze JSON
index Lze znovu naฤรญst za bฤ›hu s kolekcรญ/obnovenรญm jรกdra Definovรกno bฤ›hem vytvรกล™enรญ indexu/typu pomocรญ volรกnรญ REST
Dokumentace Je to dobล™e zdokumentovรกno. Je to ลกpatnฤ› zdokumentovรกno.
ล tรญpรกnรญ stล™epลฏ Moลพnรฝ Nenรญ to moลพnรฉ

Vรฝhody Apache Solr

  • Pomรกhรก zkrรกtit dobu potล™ebnou k nalezenรญ informacรญ
  • Je to rychlรฝ, jednoduchรฝ, vรฝkonnรฝ a flexibilnรญ vyhledรกvaฤ
  • Pomรกhรก vรกm zpล™รญstupnit vaลกe produkty a sluลพby
  • Zvyลกte รบtratu zรกkaznรญkลฏ za webovou aplikaci
  • Pomรกhรก vรกm zlepลกit uลพivatelskou zkuลกenost s webovou aplikacรญ za รบฤelem zvรฝลกenรญ pล™รญjmลฏ a zisku
  • Komplexnรญ administraฤnรญ rozhranรญ zaloลพenรฉ na HTML
  • Flexibilnรญ a adaptabilnรญ s konfiguracรญ XML
  • Rozลกiล™itelnรฝ plugin Architecture
  • Vysoce ลกkรกlovatelnรฝ, robustnรญ vyhledรกvaฤ odolnรฝ proti chybรกm
  • Podporuje distribuovanรฉ, stรญnovรกnรญ, replikace, Clustering a Multi-Node Architecture

Nevรฝhody Apache Solr

  • Nejednรก se o รบloลพiลกtฤ› dat kompatibilnรญ s ACID
  • Nenรญ uลพiteฤnรฉ jako primรกrnรญ รบloลพiลกtฤ› dat. Uลพiteฤnรฉ pouze jako sekundรกrnรญ รบloลพiลกtฤ› dat
  • Not nabรญzรญ podporu pro transakce a distribuovanรฉ transakce
  • Nepodporuje spojenรญ a sloลพitรฉ dotazy
  • Nenรญ optimรกlnรญ pro normalizovanรก data

Shrnutรญ

  • Apache Solr je open-source REST-API zaloลพenรฝ vyhledรกvacรญ server
  • Apache Solr byl vyvinut v CNET Yonikem Seeleym jako internรญ projekt dรญlฤรญ spoleฤnosti
  • Apache Solr nabรญzรญ funkce jako Automatickรฉ dokonฤovรกnรญ a Geo-Spatial Search
  • Solr Core, Solr Instance, Indexing, Document, Restful API, Fulltextovรฉ vyhledรกvรกnรญ, Admin Interface atd. jsou nฤ›kterรฉ klรญฤovรฉ pojmy pouลพรญvanรฉ v Apache Solr.
  • Query, Request handler, Request Writer a update handlers jsou nฤ›kterรฉ z dลฏleลพitรฝch souฤรกstรญ Apache Solr
  • Uลพiteฤnรฉ aplikace Apache Solr jsou intranetovรฝ portรกl, federovanรฝ klient, datovรฉ sady nรกstrojลฏ, regulaฤnรญ dokumenty a aplikace Embedded in PLM
  • Apache Solr je dobล™e zdokumentovรกn ve srovnรกnรญ s elastickรฝm vyhledรกvรกnรญm, kterรฉ je zdokumentovรกno ลกpatnฤ›
  • Nejvฤ›tลกรญ vรฝhodou Apache Solr je, ลพe vรกm pomรกhรก zkrรกtit dobu potล™ebnou k nalezenรญ informacรญ
  • Hlavnรญ nevรฝhodou tรฉto aplikace nenรญ รบloลพiลกtฤ› dat kompatibilnรญ s ACID

Shrลˆte tento pล™รญspฤ›vek takto: