Elasticsearch: Introduction
Han Yi
March 27, 2018
Elasticsearch
ElasticSearch
Elastic Search
Elastic search
👍
👎
...
Common Misconception
Basic Concepts
Elasticsearch vs RDBMS
Index
Type
Document
Field
Row
Database
Table
Column
Basic Concepts
Elasticsearch vs RDBMS
Index
Type
Document
Field
Row
Database
Table
Column
![](https://s3.amazonaws.com/media-p.slid.es/uploads/239568/images/5045167/es_types.png)
Steps for removal of mapping types
- 6.x
- may only contain a single mapping type
- _doc is preferred for single type case
- 7.x
- type is deprecated
- include_type_name is added and give warning message if not set to false (default is true and ES will use _doc)
- 8.x
- type is removed
- include_type_name is deprecated
- 9.x
- include_type_name is removed
RESTful API: A Glimpse
- API Categories
- Document API: CRUD, Bulk, Reindex, etc
- Search API: URI/DSL Query, Suggester, Aggregation, etc
- Indices API: CRUD, indices operations, etc
- Cat API: pretty print index data
- Cluster API: manager clusters
- API Example
PUT prdts/_doc/1
{
"title": "coat",
"price": "15"
}
{
"_index": "prdts",
"_type": "_doc",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
RESTful API: A Glimpse
- API Example
GET prdts/_doc/1
{
"_index": "prdts",
"_type": "_doc",
"_id": "1",
"_version": 1,
"found": true,
"_source": {
"title": "coat",
"price": "15"
}
}
RESTful API: A Glimpse
- API Example
POST prdts/_doc/1/_update
{
"doc": {
"price": "20"
}
}
{
"_index": "prdts",
"_type": "_doc",
"_id": "1",
"_version": 2,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 1,
"_primary_term": 1
}
RESTful API: A Glimpse
- API Example
DELETE prdts/_doc/1
{
"_index": "prdts",
"_type": "_doc",
"_id": "1",
"_version": 3,
"result": "deleted",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 2,
"_primary_term": 1
}
RESTful API: A Glimpse
- GET _cluster/health
- Green
- all shards are allocated
- Yellow
- the primary shard is allocated but replicas are not
- Red
- the specific shard is not allocated in the cluster
- Green
RESTful API: A Glimpse
Elasticsearch Principles
- Full text search engine based on Apache Lucene
![](https://s3.amazonaws.com/media-p.slid.es/uploads/239568/images/5045453/lucene.png)
Elasticsearch Principles
- Distributed Search Engine
![](https://s3.amazonaws.com/media-p.slid.es/uploads/239568/images/5045286/elastic-search-15-728.jpg)
Elasticsearch Principles
- Node types
![](https://s3.amazonaws.com/media-p.slid.es/uploads/239568/images/5045301/Elasticsearch_cluster.png)
Elasticsearch Principles
- Node types (Continued)
- Master-eligible node
- default: true
- Data node
- default: true
- Ingest node
- default: true
- Tribe node (deprecated)
- Client node (Coordinating only node)
- All above options are false
- Master-eligible node
Features: Scalability and Availability
- Shard (Example 1)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/239568/images/4748142/es_shard_1.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/239568/images/4748144/es_shard_2.png)
Features: Scalability and Availability
- Shard (Example 2)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/239568/images/4748146/es_shard_3.png)
Features: Scalability and Availability
- ReplicaSet (Example 3)
- Distributed Query
![](https://s3.amazonaws.com/media-p.slid.es/uploads/239568/images/4748153/es_shard_4.png)
Features: Scalability and Availability
- Fault Processing (1)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/239568/images/4748170/es_fault_2.png)
Features: Scalability and Availability
Scalability and Availability
![](https://s3.amazonaws.com/media-p.slid.es/uploads/239568/images/4748172/es_fault_3.png)
- Fault Processing (2)
Scalability and Availability
![](https://s3.amazonaws.com/media-p.slid.es/uploads/239568/images/4748174/es_fault_4.png)
- Fault Processing (3)
Thanks
Elasticsearch: Introduction
By hanyi8000
Elasticsearch: Introduction
- 1,854