Elasticsearch is an open source, cross-platform, highly scalable distributed search and analytics engine based on Apache Lucene. Lucene is a popular Java-based, full-text search engine that can be used to query large sets of data efficiently. In this article, we’ll discuss the capabilities of Elasticsearch and how we can work with it in .Net using the popular .Net client for Elasticsearch called NEST.
Elasticsearch gives you web-friendly REST APIs that exchange data in JSON format. Thus you can take advantage of Elasticsearch from your .Net application to store, search, and analyze large volumes of data in real time. Because Elasticsearch is customizable, you can use it to build our own custom search engine quite easily. There are plenty of plug-ins available to help you do this.
Unlike relational databases, Elasticsearch doesn’t store data in separate tables, but as JSON documents. Elasticsearch provides a query language called Query DSL that enables you to build and execute custom queries easily. Elasticsearch will perform better than your traditional relational database if you have a huge amount of data that must be searchable.
Elasticsearch basics
In this section we will examine the basic concepts related to Elasticsearch that will help us to get acquainted with Elasticsearch quickly. These include clusters, nodes, index, shards, and replicas.