索引(index)操作
1. 创建索引
PUT 127.0.0.1:9200/demo
2. 获取索引
GET 127.0.0.1:9200/demo
3. 获取所有索引
GET 127.0.0.1:9200/_cat/indices?v
4. 删除索引
DELETE 127.0.0.1:9200/demo
文档(doc)操作
1. 文档-创建
POST 127.0.0.1:9200/demo/_doc
{
"title": "小米手机",
"category": "小米",
"price": "1"
}
2. 文档-创建-自定义id
POST 127.0.0.1:9200/demo/_doc/1001
{
"title": "小米手机",
"category": "小米",
"price": "1"
}
3. 文档-覆盖更新
PUT 127.0.0.1:9200/demo/_doc/1001
{
"title": "小米手机",
"category": "小米",
"price": "2"
}
4. 文档-查询-通过id
GET 127.0.0.1:9200/demo/_doc/1001
5. 文档-查询全部
GET 127.0.0.1:9200/demo/_search
6. 文档-局部更新
POST 127.0.0.1:9200/demo/_update/1001
{
"doc": {
"price":17
}
}
7. 文档-全量更新
PUT 127.0.0.1:9200/demo/_doc/1001
{
"title": "小米手机",
"category": "小米",
"price": "2"
}
8. 文档-全量更新
PUT 127.0.0.1:9200/demo/_doc/1001
{
"title": "小米手机",
"category": "小米",
"price": "2"
}
9. 文档-删除
DELETE 127.0.0.1:9200/demo/_doc/1001
10. 文档-简单条件查询
GET 127.0.0.1:9200/demo/_search?q=category:小米
11. 文档-body体-match匹配
GET 127.0.0.1:9200/demo/_search
{
"query":{
"match":{
"category":"米"
}
}
}
12. 文档-body体-match_all&分页&排序
GET 127.0.0.1:9200/demo/_search
{
"query":{
"match_all":{
}
},
"from":0,//分页定位
"size":5,//页面容量
"_source":["title","num"],//控制显示字段
"sort":{
"num":{
"order":"desc"
}
}
}
13. 文档-查询-must-多条件查询
GET 127.0.0.1:9200/demo/_search
{
"query":{//查询
"bool":{//查询条件
"must":[//must 相当于mysql的and
{
"match":{//match 匹配 倒排索引 「小」和「米」都可以匹配
"category":"小米"
}
},{
"match":{//match 匹配
"num":"1"
}
}
]
}
}
}
14. 文档-查询-should&范围查询
GET 127.0.0.1:9200/demo/_search
{
"query":{//查询
"bool":{//查询条件
"should":[//must 相当于mysql的or
{
"match":{//match 匹配
"category":"小米"
}
},{
"match":{//match 匹配
"num":"1"
}
}
],
"filter":{//过滤
"range":{//范围查询
"num":{
"gt":1//大于
}
}
}
}
}
}
14. 文档-查询-全文检索-完全匹配&高亮显示
GET 127.0.0.1:9200/demo/_search
{
"query": { //查询
"match_phrase": { //match 仅匹配「小米」,不匹配「小」「米」
"category": "小米"
}
},
"highlight":{
"fields":{
"category":{}
}
}
}
15. 文档-查询-聚合操作&分组平均值
GET 127.0.0.1:9200/demo/_search
{
"aggs":{//聚合操作
"price_group":{//名称,随意起名
"avg":{//terms分组 avg平均值
"field":"price"//分组字段
}
}
},
"size":0//取消原始数据
}
映射(mapping)操作
准备:
创建索引
PUT 127.0.0.1:9200/user
1. mapping定义
PUT 127.0.0.1:9200/user/_mapping
{
"properties":{
"name":{
"type":"text",//text 可以分词查询到
"index":true
},
"sex":{
"type":"keyword",//keyword 不可以分词查询到
"index":true
},
"tel":{
"type":"keyword",
"index":false//不支持查询
}
}
}