elasticsearch学习笔记之二(CURD)

本文介绍elasticsearch的概念和CURD

1. 基本概念

http://localhost:9200/{_index}/{_type}/{_id}

例如:
http://localhost:9200/blog/user/1

关系型数据库elasticsearch
数据库 blog_index
表 user_type
行(id为1)Document
列(比如name)fields

2. 增删改查

elasticsearch 是遵循restful风格提供API接口的,所以对应的增删改查方式对应如下

请求方法说明
POST创建 /db
GET查询 /db/table/id
PUT更新或创建 /db/table/id
DELETE删除 /db/table/id
2.1 数据库操作(indexes)
2.1.1 创建数据库
curl -X PUT 'localhost:9200/blog'

返回结果:

{
"acknowledged": true,
"shards_acknowledged": true,
"index": "blog"
}
2.1.2 删除数据库
curl -X DELETE 'localhost:9200/blog'

返回结果:

{
"acknowledged": true
}

注意删除后的indexes 不是真的删除了,而是内部改变了状态后查询不到了,所以不能重新使用 POST 方法进行创建,需要使用 PUT 方法。
POST 会出现 405, GET 会出现 404

2.2 创建文档(表和记录)

elasticsearch 是以json文档形式存储数据的,使用_type 来区分文档归属,即所属表,所以创建文档的时候
添加分类_type 可以直接创建表同时加入记录

curl -X POST 'localhost:9200/blog/user -d '
{
	"id": 1,
	"name": "zhangsan",
	"score": 78.5,
	"age": 25,
	"gender": "F"
}'

在未指定_id的情况下,使用POST方法来创建一条记录,如果使用PUT 会出现 405

创建成功,返回结果:

{
"_index": "blog",
"_type": "user",
"_id": "chGm_mgB1Lja9i2Q0fSA",
"_version": 1,
"result": "created",
"_shards": {
	"total": 2,
	"successful": 1,
	"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
2.3 更新文档
curl -X PUT 'localhost:9200/blog/user/chGm_mgB1Lja9i2Q0fSA -d '
{
	"id": 1,
	"name": "zhangsan",
	"score": 80.5,
	"age": 26,
	"gender": "F"
}'

打印结果:

{
"_index": "blog",
"_type": "user",
"_id": "chGm_mgB1Lja9i2Q0fSA",
"_version": 2,
"result": "updated",
"_shards": {
	"total": 2,
	"successful": 1,
	"failed": 0
},
"_seq_no": 1,
"_primary_term": 1
}

可以看到更新一次,版本号_version会自动加 1

2.4 删除文档
curl -X DELETE 'localhost:9200/blog/user/chGm_mgB1Lja9i2Q0fSA'

打印结果:

{
"_index": "blog",
"_type": "user",
"_id": "chGm_mgB1Lja9i2Q0fSA",
"_version": 3,
"result": "deleted",
"_shards": {
	"total": 2,
	"successful": 1,
	"failed": 0
},
"_seq_no": 2,
"_primary_term": 1
}
2.5 查询文档
curl -X GET 'localhost:9200/blog/user/chGm_mgB1Lja9i2Q0fSA'

打印结果:

{
"_index": "blog",
"_type": "user",
"_id": "chGm_mgB1Lja9i2Q0fSA",
"_version": 2,
"_seq_no": 1,
"_primary_term": 1,
"found": true,
"_source": {
	"id": 1,
	"name": "zhangsan",
	"score": 80.5,
	"age": 26,
	"gender": "F"
 }
}
2.6 删除类型(表)
POST _indexex/_type/_delete_by_query?conflicts=proceed
{
  "query": {
    "match_all": {}
  }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值