天津11选5开奖走势图手机版:elasticsearch的文檔_索引_CRUD操作

作者: 魯智深 分類: java 發布時間: 2018-05-11 23:10

天津11选5中奖结果 www.ebzvaz.com.cn 前面我們了解到創建索引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 #刪除索引

如果覺得我的文章對您有用,請隨意打賞。您的支持將鼓勵我繼續創作!

發表評論

電子郵件地址不會被公開。 必填項已用*標注