Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 7839|Atbildi: 0

Meklētājprogrammas izvēle: Elasticsearch vs Solr

[Kopēt saiti]
Publicēts 11.12.2018 13:42:36 | | | |
Meklētājprogrammu atlases izpētes dokuments

Ievads Elasticsearch*


Elasticsearch ir reāllaika izplatīta meklēšanas un analīzes programma. Tas palīdz apstrādāt liela mēroga datus ātrāk nekā jebkad agrāk.

To var izmantot pilnteksta meklēšanai, strukturētai meklēšanai un analīzei, un, protams, varat apvienot visus trīs.

Elasticsearch ir meklētājprogramma, kas balstīta uz pilnteksta meklētājprogrammu Apache Lucene™, ko var uzskatīt par vismodernāko un efektīvāko pilnu funkciju atvērtā koda meklētājprogrammu sistēmu, kas pieejama šodien.

Bet Lucene ir tikai ietvars, un, lai pilnībā izmantotu tās funkcijas, jums ir jāizmanto JAVA un jāintegrē Lucene savā programmā. Ir nepieciešams daudz mācīties, lai saprastu, kā tas darbojas, un Lucene ir patiešām sarežģīta.

Elasticsearch izmanto Lucene kā iekšējo dzinēju, bet, izmantojot to pilnteksta meklēšanai, jums ir jāizmanto tikai vienota API, neizprotot sarežģītos Lucene darbības principus.

Protams, Elasticsearch ir ne tikai tikpat vienkāršs kā Lucene, tas ietver ne tikai pilna teksta meklēšanas funkcijas, bet arī var veikt šādus uzdevumus:

  • Izplatīta reāllaika failu glabāšana un indeksēšana katram laukam, lai to varētu meklēt.
  • Izplatīta meklētājprogramma ar reāllaika analīzi.
  • Tas var mērogot simtiem serveru, lai apstrādātu petabaitus strukturētu vai nestrukturētu datu.

Ar tik daudzām funkcijām, kas integrētas vienā serverī, jūs varat viegli sazināties ar ES RESTful API, izmantojot klientu vai jebkuru no vēlamajām programmēšanas valodām.

Darba sākšana ar Elasticsearch ir ļoti vienkārša. Tam ir daudz ļoti saprātīgu noklusējumu, kas padara to par labu veidu, kā iesācējiem izvairīties no sarežģītām teorijām, tiklīdz viņi sāk strādāt.

Tas ir uzstādīts un gatavs lietošanai, un tas var būt ļoti produktīvs ar nelielām mācību izmaksām.

Uzzinot vairāk, varat arī izmantot uzlabotas Elasticsearch funkcijas, un visu dzinēju var elastīgi konfigurēt. Jūs varat pielāgot savu Elasticsearch atbilstoši savām vajadzībām.

Lietošanas gadījumi:

  • Vikipēdija izmanto Elasticsearch, lai veiktu pilnteksta meklēšanu un izceltu atslēgvārdus, kā arī meklēšanas ieteikumus, piemēram, meklēšanu, kā jūs rakstāt un vai jūs domājat.
  • The Guardian izmanto Elasticsearch, lai apstrādātu apmeklētāju žurnālus, lai redaktori varētu tikt informēti par sabiedrības reakciju uz dažādiem rakstiem reāllaikā.
  • StackOverflow apvieno pilnteksta meklēšanu ar ģeogrāfisko atrašanās vietu un atbilstošu informāciju, lai sniegtu jautājumus, kas saistīti ar vairāk līdzīgu.
  • GitHub izmanto Elasticsearch, lai izgūtu vairāk nekā 130 miljardus koda rindiņu.
  • Katru dienu Goldman Sachs to izmanto, lai indeksētu 5 TB datu, un daudzas investīciju bankas to izmanto, lai analizētu akciju tirgus kustības.

Bet Elasticsearch ir paredzēts ne tikai lieliem uzņēmumiem, bet arī palīdzējis daudziem jaunuzņēmumiem, piemēram, DataDog un Klout, paplašināt savas iespējas.

Plusi un mīnusi Elasticsearch**:

Nopelniem

  • Elasticsearch tiek izplatīts. Citi komponenti nav nepieciešami, un izplatīšana notiek reāllaikā, kas pazīstama kā "Push replication".
  • Elasticsearch pilnībā atbalsta gandrīz reāllaika meklēšanu ar Apache Lucene.
  • Vairāku īres telpu apstrādei nav nepieciešama īpaša konfigurācija, savukārt Solr ir nepieciešami uzlaboti iestatījumi.
  • Elasticsearch izmanto vārtejas jēdzienu, lai atvieglotu dublēšanu.
  • Katrs mezgls veido vienādu tīkla struktūru, un, ja daži mezgli neizdodas, citi mezgli tiek automātiski piešķirti darbam to vietā.


Trūkums

  • Tikai viens izstrādātājs (pašreizējā Elasticsearch GitHub organizācija ir vairāk, tai jau ir diezgan aktīvi uzturētāji)
  • Nav pietiekami automātisks (nav piemērots pašreizējai jaunajai indeksa iesildīšanās API)


Par Solr*

Solr (izrunā "saule") ir atvērtā koda uzņēmumu meklēšanas platforma Apache Lucene projektam. Tās galvenās funkcijas ir pilna teksta meklēšana, trāpījumu marķēšana, šķautņu meklēšana, dinamiskā klasterizācija, datu bāzes integrācija un bagātināta teksta apstrāde (piemēram, Word, PDF). Solr ir ļoti mērogojams un nodrošina izkliedētu meklēšanu un indeksa replikāciju. Solr ir populārākā uzņēmuma līmeņa meklētājprogramma, un Solr4 pievieno arī NoSQL atbalstu.

Solr ir atsevišķs, pilnteksta meklēšanas serveris, kas rakstīts Java, kas darbojas servlet konteinerā, piemēram, Apache, Tomcat vai Jetty. Solr izmanto Lucene Java meklēšanas bibliotēku kā pilnteksta indeksēšanas un meklēšanas kodolu, un tai ir REST līdzīgas HTTP/XML un JSON API. Solr jaudīgās ārējās konfigurācijas iespējas ļauj viegli pielāgoties daudzu veidu lietojumprogrammām bez Java kodēšanas. Solr ir spraudņu arhitektūra, lai atbalstītu uzlabotu pielāgošanu.

Sakarā ar Apache Lucene un Apache Solr projektu apvienošanos 2010. gadā, abus projektus izveidoja un īstenoja viena un tā pati Apache Software Foundation izstrādes komanda. Runājot par tehnoloģijām vai produktiem, Lucene/Solr vai Solr/Lucene ir viens un tas pats.

Solr plusi un mīnusi:

Nopelniem

  • Solr ir lielāka un nobriedušāka lietotāju, izstrādātāju un līdzstrādnieku kopiena.
  • Atbalstiet indeksu pievienošanu vairākos formātos, piemēram, HTML, PDF, Microsoft Office programmatūras formātos un vienkārša teksta formātos, piemēram, JSON, XML, CSV utt.
  • Solr ir salīdzinoši nobriedis un stabils.
  • Meklēšana, kamēr indeksēšana netiek ņemta vērā, un ātrums ir ātrāks.


Trūkums

  • Kad indekss ir izveidots, meklēšanas efektivitāte samazinās, un reāllaika indeksa meklēšanas efektivitāte nav augsta.


Elasticsearch vs Solr*

Solr ir ātrāks, vienkārši meklējot esošos datus.




Indeksējot reāllaikā, Solr izraisīs IO bloķēšanu un sliktu vaicājumu veiktspēju, kas Elasticsearch ir skaidra priekšrocība.



Palielinoties datu apjomam, Solr meklēšanas efektivitāte kļūst zemāka, savukārt Elasticsearch būtiski nemainās.



Kopumā Solr arhitektūra nav piemērota reāllaika meklēšanas lietojumprogrammām.

Ražošanas testēšana reālajā pasaulē*

Zemāk redzamajā attēlā redzams, ka vidējais vaicājuma ātrums ir palielinājies par 50 reizēm pēc pārejas no Solr uz Elasticsearch.




Elasticsearch un Solr salīdzinājuma kopsavilkums

  • Abus ir viegli uzstādīt;
  • Solr izmanto Zookeeper izkliedētai pārvaldībai, savukārt pats Elasticsearch ir izplatījis orķestra pārvaldību;
  • Solr atbalsta vairāk datu formātu, savukārt Elasticsearch atbalsta tikai JSON failu formātus;
  • Solr oficiāli nodrošina vairāk funkciju, savukārt pati Elasticsearch vairāk koncentrējas uz pamatfunkcijām, un uzlabotās funkcijas galvenokārt nodrošina trešo pušu spraudņi.
  • Solr pārspēj Elasticsearch tradicionālajās meklēšanas lietojumprogrammās, bet ir ievērojami mazāk efektīvs nekā Elasticsearch, apstrādājot reāllaika meklēšanas lietojumprogrammas.
  • Solr ir spēcīgs risinājums tradicionālajām meklēšanas lietojumprogrammām, bet Elasticsearch ir labāk piemērots jaunām reāllaika meklēšanas lietojumprogrammām.


Citi lucene atvērtā koda meklētājprogrammu risinājumi*


1: Izmantojiet Lucene tieši

Piezīme: Lucene ir JAVA meklēšanas bibliotēka, kas pati par sevi nav pilnīgs risinājums un prasa papildu izstrādes pūles.

Priekšrocības: Nobriedis risinājums ar daudziem veiksmīgiem gadījumiem. Apache augstākā līmeņa projekti, kas turpina strauji attīstīties. Liela un aktīva attīstības kopiena, liels skaits izstrādātāju. Tā ir tikai klases bibliotēka, kurā ir pietiekami daudz vietas pielāgošanai un optimizācijai: pēc vienkāršas pielāgošanas tā var apmierināt visbiežāk sastopamās vajadzības; Optimizēts, lai atbalstītu 1 miljardu + meklējumu.

Mīnusi: Nepieciešamas papildu izstrādes pūles. Visa mērogošana, izplatīšana, uzticamība utt. Nereāllaikā starp indeksēšanu un meklēšanu ir laika aizkave, un pašreizējās meklēšanas shēmas "Lucene Near Real Time search" mērogojamība ir vēl vairāk jāuzlabo

Hipersaites pieteikšanās ir redzama.

2:Katta

Piezīme: uz lucēnu balstīts atbalsts izkliedēts, mērogojams, kļūdu izturīgs, gandrīz reāllaika meklēšanas shēma.

Plusi: Izplatīts no kastes ar Hadoop. Tam ir mērogošanas un kļūdu tolerances mehānisms.

Trūkumi: Tas ir tikai meklēšanas risinājums, un indeksēšanas daļa jums joprojām ir jāievieš pašam. Meklēšanas funkcijas ziņā tiek realizētas tikai visvienkāršākās vajadzības. Veiksmes stāstu ir mazāk un projekta briedums ir nedaudz zemāks. Tā kā tam ir jāatbalsta izplatīšana, to būs grūti pielāgot dažām sarežģītām vaicājumu prasībām.

Hipersaites pieteikšanās ir redzama.

3:Hadoop līdzdalība/indekss

Piezīme: kartēšanas/samazināšanas režīmu, izplatītu indeksēšanas risinājumu, var izmantot kopā ar Katta.

Priekšrocības: Izkliedēta indeksēšana un mērogojamība.

Trūkumi: Tikai indeksēšanas shēma, nevis meklēšanas ieviešana. Darbojas partijas režīmā ar sliktu atbalstu meklēšanai reāllaikā.

Hipersaites pieteikšanās ir redzama.

4: LinkedIn atvērtā koda risinājums

Apraksts: Dažādi risinājumi, kuru pamatā ir Lucene, tostarp Zoie meklēšanai gandrīz reāllaikā, Bobo šķautņu meklēšanai, Decompers mašīnmācīšanās algoritmiem, Krati kopsavilkuma krātuvēm, Sensei datu bāzes shēmu ietīšanai un daudz kas cits

Priekšrocības: Pārbaudīts risinājums, kas atbalsta izplatītu, mērogojamu un bagātīgu funkciju ieviešanu

Mīnusi: Pārāk cieši saistīts ar LinkedIn uzņēmumu un slikta pielāgojamība

Hipersaites pieteikšanās ir redzama.

5: Lukandra

Piezīme: Pamatojoties uz Lucēnu, indekss pastāv kasandras datubāzē

Plusi: Skatiet Cassandra priekšrocības

Mīnusi: Atsaucieties uz Cassandra trūkumiem. Arī šī ir tikai demonstrācija un nav stingri pārbaudīta

Hipersaites pieteikšanās ir redzama.

6: HBasene

Piezīme: Pamatojoties uz Lucene, indekss pastāv HBase datubāzē

Priekšrocības: Skatiet HBase priekšrocības

Trūkumi: Skatiet HBase trūkumus. Arī ieviešanā lucene termini tiek glabāti kā rindas, bet katram terminam atbilstošie grāmatošanas saraksti tiek saglabāti kā kolonnas. Pieaugot viena termiņa publicēšanas sarakstu skaitam, vaicājuma ātrums tiks ievērojami ietekmēts


Hipersaites pieteikšanās ir redzama.

7: Xunsearch

Piezīme: Xunsearch izmanto strukturētu hierarhisku dizainu, ieskaitot aizmugures pakalpojumus un priekšgala izstrādes pakotnes, ar skaidrām hierarhijām un bez krustojuma. Aizmugurējā daļa ir dēmons, kas rakstīts C/C++, savukārt priekšgalā tiek izmantota PHP, populārākā skriptu valoda, kas ir ērtāka tīmekļa meklēšanas projektiem. Detalizētu informāciju skatiet sadaļā Arhitektūras dizains.

Hipersaites pieteikšanās ir redzama.






Iepriekšējo:EOS Blockchain PHP izstrādes komplekts
Nākamo:Centos 7 instalēšana Java JDK apmācība
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com