ElasticSearch官方文档
ElasticSearch中文社区
首先上图来体验一下ElasticSearch和关系型数据库的相同和不同
MySQL | ElasticSearch |
---|---|
Database | Index |
Table | Type |
Row | Document |
Column | Field |
Schema | Mapping |
Index | Everything is indexed |
SQL | Query DSL |
SELECT * FROM table … | GET http://… |
UPDATE table SET … | PUT http://… |
一、创建索引
创建一个索引名称为test,type为user的索引,其中Document包含id,name,age,createDate四个Field属性
PUT /test
{
"mappings": {
"user": {
"properties": {
"id": {
"type": "keyword"
},
"name": {
"type": "text"
},
"age": {
"type": "integer"
},
"createDate": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
}
}
二、查看索引以及索引的Mapping结构
GET /test/_mapping
返回结果如下
{
"test": {
"mappings": {
"user": {
"properties": {
"age": {
"type": "integer"
},
"createDate": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
"id": {
"type": "keyword"
},
"name": {
"type": "text"
}
}
}
}
}
}
可以看到我们刚创建的索引的所有信息
三、插入数据
格式如下:
PUT /{index}/{type}/{id}
{
"field": "value",
...
}
实践
PUT /test/user/1
{
"id": "1",
"name": "jack",
"age": 18,
"createDate": "2021-03-01 09:03:03"
}
四、查询数据
(1)查询全部数据
格式如下:
GET /{index}/{type}/_search
{
"query": {
"match_all": {}
}
}
实践
GET /test/user/_search
{
"query": {
"match_all": {}
}
}
#返回数据:
{
"took": 0,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 1,
"hits": [
{
"_index": "test",
"_type": "user",
"_id": "2",
"_score": 1,
"_source": {
"id": "2",
"name": "rose",
"age": 19,
"createDate": "2021-03-01 09:03:04"
}
},
{
"_index": "test",
"_type": "user",
"_id": "1",
"_score": 1,
"_source": {
"id": "1",
"name": "jack",
"age": 18,
"createDate": "2021-03-01 09:03:03"
}
}
]
}
}
(2)根据条件查询数据
格式如下:
GET /{index}/{type}/_search
{
"query": {
"match": {
"FIELD": "TEXT"
}
}
}
实践:查询name叫jack的数据
GET /test/user/_search
{
"query": {
"match": {
"name": "jack"
}
}
}
#返回结果:
{
"took": 0,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.2876821,
"hits": [
{
"_index": "test",
"_type": "user",
"_id": "1",
"_score": 0.2876821,
"_source": {
"id": "1",
"name": "jack",
"age": 18,
"createDate": "2021-03-01 09:03:03"
}
}
]
}
}
五、修改数据
POST /{index}/{type}/{id}/_update
{
"doc": {
"field": "value",
...
}
}
实践:修改id为1的年龄为30岁
POST /test/user/1/_update
{
"doc": {
"age": 30
}
}
六、删除数据
格式如下:
DELETE /{index}/{type}/{id}
实践:删除id为3的数据
DELETE /test/user/3
#返回结果
{
"_index": "test",
"_type": "user",
"_id": "3",
"_version": 2,
"result": "deleted",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 1,
"_primary_term": 1
}
successful:1 表示成功
这是ElasticSearch的入门级知识,更多进阶内容可以看后续更新
作者:杜云明 欢迎转载,与人分享是进步的源泉!
如果觉得本文对您有所帮助,您可以点赞收藏。
内容有不对的地方欢迎批评指正。