-
what is elasticsearch?
Elasticsearch is a powerful and popular open source distributed search and analytics engine. -
Structured vs. unstructured (full-text) data
Data predominantly comes in two flavors: structured and unstructured. The fundamental differentiator between these two categories is the way the data is stored and analyzed. Structured data follows a predefined schema/model, while unstructured data is free-form, unorganized, and schema-free -
In addition to structured and unstructured data, there’s another category: semi-structured data. This data falls pretty much in between structured and unstructured data. It is nothing but unstructured data with some metadata describing it
-
For unstructured data, Elasticsearch offers full-text search capabilities that allow us to search for specific terms or phrases within large amounts of unstructured text. Full-text (unstructured) queries try to find results that are relevant to the query.
-
Elasticsearch handles both structured and unstructured data efficiently. One of its key features is its ability to index and search both structured and unstructured data in the same index.
-
Search engines can handle largescale data, indexing it and searching it much faster than traditional databases
-
Search engines are designed from scratch to handle unstructured data, while databases are optimized for handling structured data.
-
Search engines can quickly index large amounts of text data and make it searchable. This process typically involves breaking the text data into tokens and building an inverted index, which maps each token to the documents that contain it
-
They can also handle high query loads and large amounts of data and can scale horizontally by adding more nodes to a cluster
-
Elasticsearch is an open source search and analytics engine
-
Furthermore, Elasticsearch runs supervised and unsupervised machine learning algorithms on our data
-
Elasticsearch is an “eventually consistent” search engine.
-
Elasticsearch is not suitabel for:
-
Transactional data—Elasticsearch is an “eventually consistent” search engine, which makes it unsuitable for applications that require immediate consistency, such as financial transactions. For these types of use cases, consider using a traditional relational database or a NoSQL database like MongoDB
-
Elasticsearch can handle high-read workloads, but it is not optimized for high-write workload
- Elasticsearch is not a relational database and does not support traditional relational database features like transactions, foreign keys, and complex join operations