So che ElasticSearch è basato su Apache Lucene, ma voglio conoscere le differenze significative tra i due.
So che ElasticSearch è basato su Apache Lucene, ma voglio conoscere le differenze significative tra i due.
Risposte:
Lucene è una libreria Java . Puoi includerlo nel tuo progetto e fare riferimento alle sue funzioni usando le chiamate di funzione.
Elasticsearch è un server Web basato su JSON , distribuito , costruito su Lucene. Sebbene sia Lucene che sta facendo il vero lavoro di seguito, Elasticsearch ci fornisce un comodo livello su Lucene. Ogni frammento che viene creato in Elasticsearch è un'istanza Lucene separata. Quindi per riassumere
Oltre alle parole di @Vineeth Mohan :
Alta disponibilità: Elasticsearch è distribuito, in modo da poter gestire la replica dei dati, il che significa avere più copie dei dati nel cluster. Ciò consente un'alta disponibilità.
Potente query DSL : Elasticsearch ci offre l'interfaccia JSON per leggere e scrivere query su Lucene. Grazie a Elasticsearch, puoi scrivere query complesse senza conoscere la sintassi di Lucene.
Schemaless (senza schema): i campi (nome, coppie di valori) per schema
non devono essere definiti prima. Quando indicizzi i dati, elasticsearch può creare automaticamente lo schema in fase di esecuzione, come per esempio la magia.
Risponderò dal punto di vista dell'utilizzo.
Lucene è una libreria di motori di ricerca . Vorresti usarlo per costruire il tuo motore di ricerca: un nuovo concorrente Elasticsearch o Solr o qualcosa di limitato per il tuo caso d'uso (ad es. Analisi del testo).
Elasticsearch è un motore di ricerca . La maggior parte delle persone lo utilizza per l'aggregazione dei registri, la ricerca di prodotti o una variante di questi due (ad es. Analisi dei social media o ricerca di persone pertinenti per alcuni criteri di ricerca). È costruito sopra Lucene, quindi espone la maggior parte (anche se non tutte) delle sue caratteristiche . Aggiunge anche molto di più, in modo molto significativo: