ElasticSearch学习(一)增删改查

ElasticSearch官方文档
ElasticSearch中文社区

首先上图来体验一下ElasticSearch和关系型数据库的相同和不同

MySQLElasticSearch
DatabaseIndex
TableType
RowDocument
ColumnField
SchemaMapping
IndexEverything is indexed
SQLQuery 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的入门级知识,更多进阶内容可以看后续更新

作者:杜云明 欢迎转载,与人分享是进步的源泉!
如果觉得本文对您有所帮助,您可以点赞收藏。
内容有不对的地方欢迎批评指正。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕菲烟云

坚持原创,希望大家多多交流

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值