ElasticSearch(2)-基本操作

128 阅读2分钟

索引(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//不支持查询
        }
    }
}