Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 7839|Odpověď: 0

Výběr vyhledávače: Elasticsearch vs Solr

[Kopírovat odkaz]
Zveřejněno 11.12.2018 13:42:36 | | | |
Výzkumný dokument o výběru vyhledávače

Úvod do Elasticsearch*


Elasticsearch je distribuovaný vyhledávací a analytický engine v reálném čase. Pomáhá vám zpracovávat rozsáhlá data rychleji než kdy dříve.

Lze jej použít pro fulltextové vyhledávání, strukturované vyhledávání a analytiku, a samozřejmě můžete kombinovat všechny tři věci.

Elasticsearch je vyhledávač postavený na fulltextovém vyhledávači Apache Lucene™, který lze označit za nejpokročilejší a nejefektivnější plně vybavený open source vyhledávací framework dostupný dnes.

Ale Lucene je jen framework a abyste mohli plně využít jeho funkce, musíte použít JAVA a integrovat Lucene do svého programu. Vyžaduje to hodně učení, než to funguje, a Lucéne je opravdu složitý.

Elasticsearch používá Lucene jako svůj interní engine, ale při vyhledávání v plném textu stačí použít pouze sjednocené API, aniž byste rozuměli složitým principům fungování Lucene, které za ním stojí.

Samozřejmě, Elasticsearch není jen tak jednoduchý jako Lucene, zahrnuje nejen funkce vyhledávání v plném textu, ale dokáže také vykonávat následující úkoly:

  • Distribuované ukládání souborů v reálném čase a indexování každého pole, aby bylo možné ho prohledávat.
  • Distribuovaný vyhledávač s analytikou v reálném čase.
  • Může škálovat na stovky serverů pro zpracování petabajtů strukturovaných i nestrukturovaných dat.

Díky tolika funkcím integrovaným do jednoho serveru můžete snadno komunikovat s RESTful API od ES přes klienta nebo jakýkoli z vašich oblíbených programovacích jazyků.

Začít s Elasticsearch je velmi jednoduché. Obsahuje spoustu velmi rozumných výchozích nastavení, což z něj dělá dobrý způsob, jak se začátečníci vyhnout složitým teoriím hned na začátku.

Je nainstalovaný a připravený k použití, a může být velmi produktivní i s malými náklady na učení.

Jak se budete dozvídat více, můžete také využít pokročilejší funkce Elasticsearch a celý engine lze flexibilně nastavit. Můžete si přizpůsobit svůj vlastní Elasticsearch podle svých potřeb.

Případy použití:

  • Wikipedia používá Elasticsearch k vyhledávání v plném textu a zvýrazňování klíčových slov, stejně jako k návrhům vyhledávání jako vyhledávání při psaní a did-you-myslel.
  • The Guardian používá Elasticsearch ke zpracování návštěvnických záznamů, aby byli editoři informováni o reakcích veřejnosti na různé články v reálném čase.
  • StackOverflow kombinuje vyhledávání v plném textu s geolokací a relevantními informacemi, aby poskytl reprezentaci otázek souvisejících s podobnými věcmi.
  • GitHub používá Elasticsearch k získání více než 130 miliard řádků kódu.
  • Každý den jej Goldman Sachs používá k indexaci 5TB dat a mnoho investičních bank jej využívá k analýze pohybů akciových trhů.

Ale Elasticsearch není určen jen pro velké podniky, ale také pomohl mnoha startupům jako DataDog a Klout rozšířit jejich schopnosti.

Výhody a nevýhody Elasticsearch**:

zásluha

  • Elasticsearch je distribuovaný. Nejsou potřeba žádné další komponenty a distribuce probíhá v reálném čase, známá jako "Push replikace".
  • Elasticsearch plně podporuje téměř reálné vyhledávání s Apache Lucene.
  • Zpracování multitenancy nevyžaduje žádnou speciální konfiguraci, zatímco Solr vyžaduje pokročilejší nastavení.
  • Elasticsearch využívá koncept Gateway, aby bylo snazší zálohovat.
  • Každý uzel tvoří rovnocennou síťovou strukturu a když některé uzly selžou, jsou automaticky přiřazeny jiné uzly k jejich nahrazení.


nedostatek

  • Pouze jeden vývojář (současná organizace Elasticsearch na GitHubu je víc, už má poměrně aktivní správce společnosti)
  • Není dostatečně automatické (není vhodné pro aktuální nové API Index Warmup)


O Solr*

Solr (vyslovuje se "solar") je open-source podniková vyhledávací platforma pro projekt Apache Lucene. Mezi jeho hlavní funkce patří vyhledávání v plném textu, označování výsledků, facetové vyhledávání, dynamické shlukování, integrace databází a zpracování bohatého textu (např. Word, PDF). Solr je vysoce škálovatelný a poskytuje distribuované vyhledávání a replikaci indexů. Solr je nejpopulárnější podnikový vyhledávač a Solr4 také přidává podporu NoSQL.

Solr je samostatný fulltextový vyhledávací server napsaný v Javě, který běží na servletovém kontejneru, jako je Apache Tomcat nebo Jetty. Solr používá vyhledávací knihovnu Lucene Java jako jádro pro indexování a vyhledávání v plném textu a má REST-like HTTP/XML a JSON API. Výkonné externí konfigurační schopnosti Solr usnadňují přizpůsobení mnoha typům aplikací bez Java kódování. Solr má architekturu pluginů pro podporu pokročilejších úprav.

Kvůli sloučení projektů Apache Lucene a Apache Solr v roce 2010 byly oba projekty vytvořeny a realizovány stejným vývojovým týmem Apache Software Foundation. Pokud jde o technologie nebo produkty, Lucene/Solr nebo Solr/Lucene jsou na tom stejně.

Výhody a nevýhody Solr:

zásluha

  • Solr má větší a vyspělejší komunitu uživatelů, vývojářů a přispěvatelů.
  • Podpora přidávání indexů v různých formátech, jako jsou HTML, PDF, formáty Microsoft Office a prosté textové formáty jako JSON, XML, CSV atd.
  • Solr je poměrně vyspělý a stabilní.
  • Vyhledávání při indexování se nebere v úvahu a rychlost je rychlejší.


nedostatek

  • Když je index vytvořen, efektivita vyhledávání klesá a efektivita vyhledávání indexů v reálném čase není vysoká.


Elasticsearch vs Solr*

Solr je rychlejší už při hledání existujících dat.




Při indexování v reálném čase způsobuje Solr blokování IO a špatný výkon dotazů, což má Elasticsearch jasnou výhodu.



S rostoucím množstvím dat klesá efektivita vyhledávání v Solru, zatímco Elasticsearch se výrazně nemění.



Shrnuto, architektura Solr není vhodná pro aplikace vyhledávání v reálném čase.

Testování výroby v reálném světě*

Obrázek níže ukazuje 50násobné zvýšení průměrné rychlosti dotazů po přechodu ze Solr na Elasticsearch.




Shrnutí srovnání Elasticsearch vs Solr

  • Oba jsou snadno instalovatelné;
  • Solr využívá Zookeeper pro distribuovanou správu, zatímco Elasticsearch sám má distribuovanou orchestraci managementu;
  • Solr podporuje více formátů dat, zatímco Elasticsearch podporuje pouze formáty JSON souborů;
  • Solr oficiálně nabízí více funkcí, zatímco Elasticsearch se více zaměřuje na základní funkce a pokročilé funkce jsou většinou poskytovány pluginy třetích stran.
  • Solr překonává Elasticsearch v tradičních vyhledávacích aplikacích, ale je výrazně méně efektivní než Elasticsearch při práci s aplikacemi v reálném čase.
  • Solr je výkonné řešení pro tradiční vyhledávací aplikace, ale Elasticsearch je lépe přizpůsoben pro vznikající aplikace vyhledávání v reálném čase.


Další open source vyhledávače založené na Lucene*


1: Používejte Lucene přímo

Poznámka: Lucene je JAVA vyhledávací knihovna, která sama o sobě není kompletním řešením a vyžaduje dodatečné vývojové úsilí.

Výhody: Vyspělé řešení s mnoha úspěšnými případy. Apache jsou projekty na nejvyšší úrovni, které nadále rychle postupují. Velká a aktivní vývojářská komunita, velké množství vývojářů. Je to jen knihovna tříd s dostatkem prostoru pro přizpůsobení a optimalizaci: po jednoduché úpravě dokáže splnit většinu běžných potřeb; Optimalizováno pro podporu vyhledávání 1 miliardy+.

Nevýhody: Vyžaduje to další vývojové úsilí. Veškeré škálování, distribuce, spolehlivost atd. musíte implementovat sami; V nereálném čase je mezi indexováním a vyhledáváním časové zpoždění a škálovatelnost současného vyhledávacího schématu "Lucene Near Real Time" je třeba dále zlepšit

Přihlášení k hypertextovému odkazu je viditelné.

2: Katta

Poznámka: Lucene podporuje distribuované, škálovatelné, odolné vůči chybám a téměř v reálném čase vyhledávací schéma.

Klady: Distribuováno přímo po vybalení s Hadoopem. Má mechanismus škálování a odolnosti vůči chybám.

Nevýhody: Je to jen vyhledávací řešení a indexaci si musíte implementovat sami. Z hlediska vyhledávacích funkcí jsou splněny pouze ty nejzákladnější potřeby. Úspěšných příběhů je méně a zralost projektu je o něco nižší. Protože musí podporovat distribuci, bude obtížné jej přizpůsobit pro složité požadavky na dotazy.

Přihlášení k hypertextovému odkazu je viditelné.

3: Příspěvek/index Hadoop

Poznámka: Režim Map/Redukce, distribuované indexovací řešení, lze použít s Kattou.

Výhody: Distribuované indexování a škálovatelnost.

Nevýhody: Pouze indexovací schéma, nikoli implementace vyhledávání. Funguje v dávkovém režimu s nedostatečnou podporou pro vyhledávání v reálném čase.

Přihlášení k hypertextovému odkazu je viditelné.

4: Open-source řešení LinkedIn

Popis: Řada řešení založených na Lucene, včetně Zoie pro vyhledávání téměř v reálném čase, Bobo pro vyhledávání facetů, Decomposer pro algoritmy strojového učení, Krati pro repozitáře shrnování, Sensei pro obalování databázových schémat a další

Výhody: Osvědčené řešení podporující distribuovanou, škálovatelnou a bohatou implementaci funkcí

Nevýhody: Příliš úzké propojení s LinkedIn a špatná přizpůsobitelnost

Přihlášení k hypertextovému odkazu je viditelné.

5: Lucandra

Poznámka: Na základě Lucene existuje index v databázi Cassandra

Výhody: Viz výhody Cassandry

Nevýhody: Viz nevýhody Cassandry. Navíc je to jen demo a nebylo to silně ověřeno

Přihlášení k hypertextovému odkazu je viditelné.

6:HBasene

Poznámka: Na základě Lucene existuje index v databázi HBase

Výhody: Viz výhody HBázy

Nevýhody: Viz nevýhody HBase. Také v implementaci jsou lucene termíny ukládány jako řádky, ale seznamy příspěvků odpovídající každému termínu jsou uloženy ve sloupcích. Jak počet seznamů pro jeden termín roste, rychlost dotazu bude výrazně ovlivněna


Přihlášení k hypertextovému odkazu je viditelné.

7: Xunsearch

Poznámka: Xunsearch používá strukturovaný hierarchický design, včetně back-end služeb a front-end vývojových balíčků, s jasnými hierarchiemi a bez průniků. Backend je démon napsaný v C/C++, zatímco frontend používá PHP, nejpopulárnější skriptovací jazyk, který je pohodlnější pro webové vyhledávače. Podrobnosti viz Architektonický návrh.

Přihlášení k hypertextovému odkazu je viditelné.






Předchozí:EOS Blockchain PHP vývojová sada
Další:Centos 7 Instalace Java JDK tutoriál
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com