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 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 |
|
| Federovanรฝ klient |
|
| Datovรฉ sady pลรญstrojลฏ |
|
| Regulaฤnรญ dokumenty |
|
| Zabudovรกno do aplikace PLM |
|
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โ.
Krok 2) Kliknฤte na Pลijmout podmรญnky
Na dalลกรญ strรกnce kliknฤte na Pลijmout podmรญnky.
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.
Krok 4) Pokraฤujte do Konfigurace
Obnovte strรกnku a kliknฤte na โPokraฤovat ke konfiguraciโ
Krok 5) Pokraฤujte ke spuลกtฤnรญ
Ponechte vรฝchozรญ nastavenรญ a kliknฤte na โPokraฤovat ke spuลกtฤnรญโ.
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โ
Uvidรญte tuto zprรกvu o รบspฤchu
Krok 7) Vลกimnฤte si veลejnรฉho DNS
V konzole EC2 si poznamenejte veลejnรฝ DNS vaลกรญ instance
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
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:
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










