前言:elasticsearch貌似版本疊代超快,現在網上大多的例子都是老版本的。
最新elasticsearch 7.x的版本裡type的概念被廢棄(https://www.elastic.co/guide/en/elasticsearch/reference/master/removal-of-types.html)。跑在新版elasticsearch下會警告或報錯。以下指令符合7.x規範,Kibana裡全部驗證過。
// 建立一個索引
PUT school
{
"settings":{
"number_of_shards": 3,
"number_of_replicas": 1
},
"mappings":{
"properties":{
"name":{
"type":"text"
},
"address":{
"type":"keyword"
},
"age":{
"type":"integer"
},
"date":{
"type":"date",
"format":"yyyy-MM-dd HH:mm:ss|| yyy-MM-dd||epoch_millis"
}
}
}
}
// 插入一條資料,手動指定ID
PUT /school/_doc/1
{
"name":"楊旭",
"address":"山東煙台",
"age":22,
"date":"1995-04-12"
}
// 插入一條資料,自動生成ID
POST /school/_doc/
{
"name":"張小花",
"address":"山東煙台",
"age":24,
"date":"1996-07-24"
}
// 用ID查詢某條資料
GET /school/_doc/1
// 用ID查詢某條資料的指定字段
GET /school/_doc/1?_source=name,address
// 查詢某庫所有資料
GET /school/_search
// 複合查詢
GET /school/_search
{
"query": {
"match": {
"name": "花"
}
},
"sort": [
{
"date": {
"order": "desc"
}
}
],
"from": 0,
"size": 10
}
// 檢視索引的mapping
GET /school/_mapping
// 覆寫式修改資料(全覆寫,而非增量覆寫)
PUT /school/_doc/1
{
"name":"楊花旭",
"address":"山東濟甯",
"date":"1995-04-12"
}
// 增量式修改資料
POST /school/_update/1/
{
"doc":{
"age":20
}
}
// 删除某條資料
DELETE /school/_doc/1