The wiki translation

Elasticsearch is a search engine based on the Lucene library. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents. Elasticsearch is developed in Java and is dual-licensed under the source-available Server Side Public License and the Elastic license,[3] while other parts[4] fall under the proprietary (source-available) Elastic License. Official clients are available in Java, .NET (C#), PHP, Python, Apache Groovy, Ruby and many other languages.[5] According to the DB-Engines ranking, Elasticsearch is the most popular enterprise search engine followed by Apache Solr, also based on Lucene.[6]

Elasticsearch is a search engine based on Lucene Library. She provides a distributed, multi-tenant full-text search engine in HTTP interface and JSON format. Elasticsearch was developed in Java.

The basic concept

The Node and Cluster

Elastic is essentially a distributed database that allows multiple servers to work together and each server can run multiple Elastic instances.

A single Elastic instance is called a node. A group of nodes forms a cluster.

Index

The Elastic indexes all the fields, and after processing, writes a Inverted Index. When looking for data, look up the index directly.

So the top-level unit of Elastic data management is called an Index. It is a synonym for a single database. The name of each Index (that is, database) must be lowercase.

The following command displays all indexes of the current node.

$ curl -X GET ‘http://localhost:9200/_cat/indices? v’

Create an Index and send a PUT request to the Elastic server. The following example creates a new Index named weather.

$ curl -X PUT ‘localhost:9200/weather’

Document

The single record inside Index is called a Document. A number of documents form an Index.

Document is represented in JSON format

Documents in the same Index are not required to have the same structure (scheme), but it is better to keep the same, so as to improve the search efficiency.