Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 7839|Válasz: 0

Keresőmotor-választás: Elasticsearch vs Solr

[Linket másol]
Közzétéve 2018. 12. 11. 13:42:36 | | | |
Keresőmotor-kiválasztási kutatási dokumentum

Bevezetés az Elasticsearch-hez*


Az Elasticsearch egy valós idejű, elosztott kereső- és analitikai motor. Segít gyorsabban feldolgozni a nagyszabású adatokat, mint valaha.

Használható teljes szöveges keresésre, strukturált keresésre és elemzésre, és természetesen mindhárom kombinációt kombinálhatod.

A Elasticsearch egy teljes szöveges Apache Lucene™ keresőmotorra épült, amelyet a ma legfejlettebb és leghatékonyabb, teljes funkciójú nyílt forráskódú keresőmotor-keretrendszernek nevezhetünk.

De a Lucene csak egy keretrendszer, és hogy teljes mértékben kihasználd a funkcióit, a JAVA-t kell használnod, és integrálnod kell a Lucene-t a programodba. Sok tanulás kell ahhoz, hogy megértsük, hogyan működik, és Lucene tényleg bonyolult.

Az Elasticsearch a Lucene-t használja belső motorjaként, de teljes szöveges keresésnél csak egy egységes API-t kell használni, anélkül, hogy megértened a Lucene mögött álló összetett működési elveket.

Természetesen az Elasticsearch nemcsak olyan egyszerű, mint a Lucene, nemcsak teljes szöveges keresőfunkciókat tartalmaz, hanem a következő feladatokat is képes ellátni:

  • Elosztott valós idejű fájltárolás és minden mező indexelése lehetővé teszi, hogy kereshető legyen.
  • Elosztott keresőmotor valós idejű analitikával.
  • Több száz szerverre képes skálázni, hogy petabájtnyi strukturált vagy strukturálatlan adatot kezeljen.

Mivel ennyi funkció van integrálva egyetlen szerverre, könnyen kommunikálhatsz az ES RESTful API-jával a kliensen vagy bármelyik kedvenc programozási nyelveden keresztül.

A Elasticsearch elkezdése nagyon egyszerű. Sok nagyon ésszerű alapértelmezéssel jár, ami jó módja annak, hogy a kezdők számára elkerüljék a bonyolult elméletekkel való foglalkozást rögtön a kezdetükben.

Be van szerelve és használatra kész, és nagyon produktív lehet kis tanulási költséggel.

Ahogy többet tudsz meg, kihasználhatod az Elasticsearch fejlettebb funkcióit is, és az egész motor rugalmasan konfigurálható. Saját Elasticsearch-ed testreszabható az igényeidhez.

Felhasználási esetek:

  • A Wikipédia a Elasticsearch-et használja teljes szöveges keresésekre és kulcsszavak kiemelésére, valamint olyan keresési javaslatokra, mint például a keresés, ahogy gépelsz vagy mire gondoltál.
  • A Guardian a Elasticsearch-et használja a látogatói naplók feldolgozására, így a szerkesztők valós időben értesülhetnek a különböző cikkekre adott nyilvános reakciókról.
  • A StackOverflow ötvözi a teljes szöveges keresést a földhelymeghatározással és releváns információkkal, hogy a hasonlókhoz kapcsolódó kérdéseket reprezentálja.
  • A GitHub a Elasticsearch-et használja több mint 130 milliárd sor kód lekérésére.
  • A Goldman Sachs naponta 5TB adatindexet használ, és sok befektetési bank is használja fel tőzsdei mozgások elemzésére.

De a Elasticsearch nemcsak nagyvállalatoknak szól, hanem sok startupnak, mint a DataDog és a Klout, segítette képességeik bővítését is.

Az Elasticsearch előnyei és hátrányai**:

érdem

  • A rugalmas keresés elosztott. Más komponensek nem szükségesek, és a forgalmazás valós idős, amit "Push replikációnak" neveznek.
  • Az Elasticsearch teljes mértékben támogatja a közel valós idejű keresést az Apache Lucene-vel.
  • A többbérlőség kezeléséhez nincs szükség speciális konfigurációra, míg a Solr fejlettebb beállításokra van szükség.
  • Az Elasticsearch a Gateway koncepcióját használja, hogy könnyebb legyen a biztonsági mentés.
  • Minden csomópont egyenlő hálózati struktúrát alkot, és amikor egyes csomópontok meghibásodik, automatikusan más csomópontokat rendelnek hozzájuk.


Hiány

  • Csak egy fejlesztő (a jelenlegi Elasticsearch GitHub szervezet ennél több, már elég aktív karbantartói vannak)
  • Nem elég automatikus (nem alkalmas a jelenlegi új Index Warmup API-hoz)


About Solr*

A Solr (kiejtve: "solar") egy nyílt forráskódú vállalati keresőplatform az Apache Lucene projekthez. Fő jellemzői közé tartozik a teljes szöveges keresés, a találatjelölés, a fazettált keresés, a dinamikus klaszterezés, az adatbázis-integráció és a gazdag szöveg (pl. Word, PDF) feldolgozása. A Solr rendkívül skálázható, és elosztott keresést és indexreplikációt biztosít. A Solr a legnépszerűbb vállalati szintű keresőmotor, és a Solr4 emellett NoSQL támogatást is hozzáad.

A Solr egy önálló, teljes szöveges keresőszerver, amely Java nyelven íródott, és egy servlet konténeren fut, például Apache Tomcat vagy Jetty. A Solr a Lucene Java keresőkönyvtárat használja magként a teljes szöveges indexeléshez és kereséshez, és REST-szerű HTTP/XML és JSON API-kkal rendelkezik. A Solr erőteljes külső konfigurációs képességei megkönnyítik a különféle alkalmazásokhoz való alkalmazkodást Java kódolás nélkül. A Solrnak van egy plugin architektúrája, amely támogatja a fejlettebb testreszabást.

Az Apache Lucene és az Apache Solr projektek 2010-es egyesülése miatt a két projektet ugyanaz az Apache Software Foundation fejlesztőcsapata hozta létre és valósította meg. A technológia vagy termékek terén a Lucene/Solr vagy a Solr/Lucene ugyanaz.

A Solr előnyei és hátrányai:

érdem

  • A Solrnak nagyobb és érettebb felhasználói közössége van, ahol használói, fejlesztői és közreműködői állnak.
  • Támogatja az indexek hozzáadását több formátumban, például HTML, PDF, Microsoft Office szoftverformátumok, valamint egyszerű szöveges formátumok, mint például JSON, XML, CSV stb.
  • A Solr viszonylag érett és stabil.
  • Az indexeléskor történő keresés nem számít, és a sebesség gyorsabb.


Hiány

  • Amikor az index megalakul, a keresés hatékonysága csökken, és a valós idejű indexkeresés hatékonysága nem magas.


Elasticsearch vs Solr*

A Solr gyorsabb, ha egyszerűen a meglévő adatokat keresi.




Valós idejű indexelés esetén a Solr IO-blokkolást és gyenge lekérdezési teljesítményt okoz, ami az Elasticsearchnek egyértelmű előnye.



Ahogy az adatok mennyisége nő, a Solr keresési hatékonysága csökken, míg az Elasticsearch nem változik jelentősen.



Összefoglalva, a Solr architektúrája nem alkalmas valós idejű keresési alkalmazásokhoz.

Valós gyártási tesztek*

Az alábbi ábra 50-szeres növekedést mutat az átlagos lekérdezési sebességben, miután átváltunk Solrról Elasticsearchre.




Az Elasticsearch és a Solr összehasonlításának összefoglalása

  • Mindkettő könnyen telepíthető;
  • A Solr a Zookeeper-t használja az elosztott menedzsmenthez, míg maga a Elasticsearch elosztott orkestrációs menedzsmentet kínál;
  • A Solr több adatformátumot támogat, míg az Elasticsearch csak JSON fájlformátumokat támogat;
  • A Solr hivatalosan több funkciót kínál, míg maga az Elasticsearch inkább az alapvető funkciókra fókuszál, és a fejlett funkciókat főként harmadik féltől származó pluginok biztosítják.
  • A Solr a hagyományos keresési alkalmazásokban felülmúlja az Elasticsearch-et, de valós idejű keresési alkalmazások kezelése során jelentősen kevésbé hatékony, mint az Elasticsearch.
  • A Solr hatékony megoldás hagyományos keresőalkalmazásokhoz, de a Elasticsearch jobban illik a feltörekvő valós idejű keresési alkalmazásokhoz.


Egyéb Lucene-alapú nyílt forráskódú keresőmotor-megoldások*


1: Használd közvetlenül a Lucene-t

Megjegyzés: A Lucene egy JAVA keresőkönyvtár, amely önmagában nem teljes megoldás, és további fejlesztési erőfeszítést igényel.

Előnyök: Érett megoldás sok sikeres esettel. Apache csúcsszintű projektek, amelyek folyamatosan gyorsan fejlődnek. Nagy és aktív fejlesztői közösség, rengeteg fejlesztő. Ez csupán egy osztálykönyvtár, elegendő lehetőséggel a testreszabásra és optimalizálásra: egyszerű testreszabás után a legtöbb gyakori igényt képes kielégíteni; Optimalizálva, hogy 1 milliárd+ keresést támogassanak.

Hátrányok: További fejlesztési erőfeszítést igényel. Minden skálázást, elosztást, megbízhatóságot stb. magadnak kell megvalósítani; Nem valós időben időbeli késés van az indexelés és a keresés között, és a jelenlegi "Lucene Near Real Time search" keresési séma skálázhatóságát tovább kell javítani

A hiperlink bejelentkezés látható.

2:Katta

Megjegyzés: A Lucene-alapú támogat elosztott, skálázható, hibatűrő, közel valós idejű keresési rendszert.

Előnyök: Dobozból kiterjedt Hadoop-pal. Van egy skálázási és hibatűrő mechanizmusa.

Hátrányok: Ez csak egy keresési megoldás, és az indexelési részt még magadnak kell megvalósítanod. A keresési függvény szempontjából csak a legalapvetőbb igények teljesülnek meg. Kevesebb sikertörténet van, és a projekt érettsége kissé alacsonyabb. Mivel támogatnia kell a terjesztést, nehéz lesz testreszabni néhány összetett lekérdezési követelményhez.

A hiperlink bejelentkezés látható.

3:Hadoop hozzájárulás/index

Megjegyzés: A Katta-val használható a térkép/csökkentés mód, egy elosztott indexelési megoldás.

Előnyök: Elosztott indexelés és skálázhatóság.

Hátrányok: Csak az indexelési séma, nem a keresési megvalósítás. Batch módban működik, gyenge támogatással a valós idejű kereséshez.

A hiperlink bejelentkezés látható.

4: A LinkedIn nyílt forráskódú megoldása

Leírás: Lucene-alapú megoldások sor változata, beleértve a Zoie-t a közel valós idejű kereséshez, a Bobo-t a felületkereséshez, a Decomposert a gépi tanulási algoritmusokhoz, Krati az összefoglaló tárolókhoz, Sensei az adatbázis-séma csomagolásához és még sok más

Előnyök: Bizonyított megoldás, amely támogatja az elosztott, skálázható és gazdag funkciók megvalósítását

Hátrányok: Túl szoros kapcsolat a LinkedIn céggel és gyenge testreszabhatóság

A hiperlink bejelentkezés látható.

5: Lucandra

Megjegyzés: Lucene alapján az index a cassandra adatbázisban található

Előnyök: Ismerd meg Cassandra előnyeit

Hátrányok: Lásd Cassandra hátrányait. Ez csak egy demó, és nem volt erősen ellenőrizve

A hiperlink bejelentkezés látható.

6:HBasene

Megjegyzés: Lucene alapján az index a HBase adatbázisban létezik

Előnyök: Tekintse meg a HBáz előnyeit

Hátrányok: Lásd a HBáz hátrányait. A megvalósításban a lucén kifejezéseket sorokban tárolják, de az egyes kifejezésekhez tartozó bejegyzési listák oszlopokban tárolódnak. Ahogy egy ciklusra vonatkozó bejegyzési listák száma növekszik, a lekérdezés sebessége jelentősen megváltozik


A hiperlink bejelentkezés látható.

7: Xunsearch

Megjegyzés: A Xunsearch strukturált hierarchikus kialakítást alkalmaz, beleértve a backend szolgáltatásokat és front-end fejlesztő csomagokat, világos hierarchiával és metszések nélkül. A háttérrendszer egy C/C++ nyelvű démon, míg a frontend a PHP-t használja, amely a legnépszerűbb szkriptnyelv, és kényelmesebb webes keresési projektekhez. Részletekért lásd: Építészeti tervezés.

A hiperlink bejelentkezés látható.






Előző:EOS Blockchain PHP Fejlesztő Kit
Következő:Centos 7 Installation Java JDK Tutorial
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com