MongoDB è un database . La ricerca elastica è un motore di ricerca . Poiché i loro obiettivi sono diversi, hanno priorità diverse. MongoDB è focalizzato sull'archiviazione dei dati in modo coerente con buone prestazioni e per supportare diversi modelli di accesso. La ricerca elastica si concentra sulla creazione di indici a bassa latenza per la ricerca specifica del testo. MongoDB ha una ricerca full-text (la maggior parte dei database fa), ma è una funzionalità, non l'obiettivo principale del database, quindi potrebbe non avere tante opzioni e potrebbe non essere performante come ElasticSearch.
I would like to understand the value-add of indexing in Elastic search over indexing of a MongoDB collection.
In particolare, dai un'occhiata alla documentazione sull'indice di testo di MongoDB . Supporta solo un tipo limitato di query e opzioni di indice. ElasticSearch supporta molte strategie di tokenizzazione , filtri token, filtri di caratteri, corrispondenza fuzzy , sinonimi e altro.
Why elastic search is so popular?
La maggior parte delle tue domande sta confrontando MongoDB ed ElasticSearch, ma non tutti stanno utilizzando MongoDB. Se stai utilizzando un RDBMS (ad esempio PostgreSQL), è molto comodo raccogliere gli attributi di ricerca e incollarli in un motore di ricerca come ElasticSearch. In questo caso non ha senso usare MongoDB perché è già in uso un RDBMS. Non abbiamo bisogno di un altro database, abbiamo bisogno di un motore di ricerca, ed è qui che risplende ElasticSearch. Se stai già utilizzando MongoDB, puoi comunque scegliere di utilizzare un motore di ricerca dedicato perché è probabilmente più veloce di MongoDB, mette meno carico sul tuo database OLTP e ha più funzioni di ricerca.