本文最后更新于 1115 天前,其中的信息可能已经有所发展或是发生改变。
索引
创建索引
非结构化
PUT /employee/_doc/1
{
"settings": {
"number_of_shards": 1 //主分片数,以后无法扩展
"number_of_replicas": 1 //副本分片数,随便扩展
}
}
结构化
PUT /employee/_doc/1
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"name": {"type": "text"},
"age": {"type": "integer"}
}
}
}
基础类型
| 类型 | 说明 |
|---|---|
| text | 字符串,会对字段进行分词 |
| keyword | 字符串,不会对字段分词 |
| date | 时间 |
| long | 长整型 |
| integer | 整型 |
| short | 短整型 |
| double | 浮点型 |
| boolean | 布尔型 |
| array | 数组 |
| json | json字符串 |
| ip | IP地址 |
| geo_point | 地理位置,经纬度 |
删除索引
DELETE /employee
文档
新增文档
POST /employee/_create/1
{
"name": "Chris Evans",
"age": 31
}
修改文档
全量修改
PUT /employee/_doc/1
{
"name": "Captain America",
"age": 30
}
指定字段修改
POST /employee/_update/1
{
"doc": {
"name": "Steve Rogers"
}
}
删除文档
DELETE /employee/_doc/2 //通过ID删除
查询文档
GET /employee/_doc/1 //通过ID查询
无条件查询
GET /employee/_search //查询全部
GET /employee/_search
{
"query": {
"match_all": {}
}
}
关键字查询
GET /employee/_search
{
"query": {
"match": {"name": "steve"}
}
}
排序 (sort)
GET /employee/_search
{
"query": {
"match_all": {}
},
"sort": [
{"age": {"order": "desc"}}
]
}
分页 (from & size)
GET /employee/_search
{
"query": {
"match_all": {}
},
"from": 0,
"size": 10
}
聚合 (aggs)
GET /employee/_search
{
"query": {
"match": {"name": "steve"}
},
"aggs": {
"my_age_group": {
"terms": {"field": "age"}
}
}
}
过滤 (filter)
GET /employee/_search
{
"query": {
"bool": {
"filter": [
{"match": {"name": "steve job"}}, //match会分词
{"term": {"age": 30}} //term不会分词
]
}
}
}
