elasticsearch的文档_索引_CRUD操作

作者: 鲁智深 分类: java 发布时间: 2018-05-11 23:10

前面我们了解到创建索引index可以理解为mysql创建一个数据库,进入kibanba>DEV TOOLS界面进行创建一个索引,这种方式是比较灵活的,必须要掌握。

1
2
3
4
5
6
7
8
9
10
11
12
#索引初始化操作
#指定分片和副本的数量
#shards一旦设置不能修改
PUT jobbole
{
  "settings": {
    "index":{
      "number_of_shards":5,#分片数量
      "number_of_replicas":1#副本数量
    }
  }
}

也可以通过elasticsearch-head插件创建索引

elasticsearch-head插件创建索引

elasticsearch-head插件创建索引

索引一旦创建成功,分片数量是不能改的,副本数量是可以改的。

获取索引

1
2
3
GET jobbole/_settings
GET _all/_settings
GET .kibana,jobbole/_settings

修改索引

1
2
3
4
5
6
7
#修改settings
PUT jobbole/_settings
{
  "number_of_replicas":2
}

GET _all

保存文档,其中jobbole是索引,job是type表的意思,1是id

1
2
3
4
5
6
7
8
9
10
11
12
PUT jobbole/job/1
{
  "title":"python分布式爬虫开发",
  "salary_min":1500,
  "city":"苏州",
  "company":{
    "name":"中国移动",
    "company_addr":"苏州园区"
  },
  "publish_date":"2017-4-16",
  "comments":15
}

elasticsearch会自动生成id,那我们直接在POST一个文档数据,这里我们没有写id

1
2
3
4
5
6
7
8
9
10
11
12
POST jobbole/job/
{
  "title":"python web",
  "salary_min":3500,
  "city":"苏州",
  "company":{
    "name":"中国联通",
    "company_addr":"苏州园区"
  },
  "publish_date":"2017-4-16",
  "comments":15
}

有数据了,我们可以获取文档,其中jobbole是索引,job是type表的意思,1是id

1
GET jobbole/job/1

那么我们能不能获取某个字段,方法如下

1
2
3
GET jobbole/job/1?_source=title
GET jobbole/job/1?_source=title,company#获取2个字段
GET jobbole/job/1#获取全部字段

修改文章,这里PUT方式是覆盖方式的修改文章,我们把价格变成里44500

1
2
3
4
5
6
7
8
9
10
11
12
PUT jobbole/job/1
{
  "title":"python分布式爬虫开发",
  "salary_min":44500,
  "city":"苏州",
  "company":{
    "name":"中国移动",
    "company_addr":"苏州园区"
  },
  "publish_date":"2017-4-16",
  "comments":15
}

局部修改,修改某一个字段,需要加上doc,就是document的意思,当这是最推荐的修改方式。

1
2
3
4
5
6
POST jobbole/job/1/_update
{
  "doc":{
    "salary_min":55500
  }
}

最后一个操作就是删除,Elasticsearch已经不支持删除一个type了,所以使用delete命令想要尝试删除一个type的时候会出现报错。

1
2
DELETE jobbole/job/1 #删除一条数据
DELETE jobbole #删除索引

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注