第二章 ElasticSearch常用命令

1.前提

es是属于restful风格,可直接是使用postman或者使用kibana直接进行请求

2.操作索引库

2.1 创建文档

注意:索引库名称不能有大写

PUT /test1/type1/1
{
  "name":"dongkuijie",
  "age":3
}

结果:
在这里插入图片描述

2.2 创建索引库(设置mapping)

PUT /test2
{
  "mappings": {
    "properties": {
      "name":{
        "type": "text"
      },
      "age":{
        "type": "long"
      },
      "birthday":{
        "type": "date"
      }
    }
  }
}

结果:

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "test3"
}

mapping映射的各个数据类型
在这里插入图片描述

2.3 获取索引库

通过get请求获得索引库具体信息

GET /索引库名称/类型/文档

2.4 查看es节点健康情况

GET _cat/health

2.5 查看es的版本信息

GET _cat/indices?v

2.5 修改文档

老版本:

PUT /test2/_doc/1 # 最终结果为 _version增加版本号 result为updated
{
  "name":"dongkuijie2",
  "age":"22",
  "birth":"1997-05-24"
}

新版本:

POST /test2/_doc/1/_update 
{
  "doc":{
    "name":"dongkuijie3"
  }
}

2.6 删除索引库

注意:根据请求路径来判断是删除索引还是删除文档

DELETE /索引库
DELETE /索引库/类型/文档

2.操作文档

2.1 创建文档

PUT /dongkuijieit/user/1
{
  "name":"测试1",
  "age":30,
  "desc":"nmp,不知道怎么形容",
  "tags":["好男人","温暖"]
}

2.1 获取文档

通过id查询【简单的条件查询】

GET /索引库/类型/文档的id

2.2 简单搜索

GET /索引库//_search?q=属性名:查询参数

在这里插入图片描述
注意:在查询数据的时候会发现有一个 "_score" : 0.6931471,这个是一个匹配度,分值越高代表匹配程度越高

2.3 复杂搜索

2.3.1 精准搜索
GET /索引库/类型/_search
{
  "query": {
    "match": { #精准查询
      "filed": "TEXT"
    }
  }
}

在这里插入图片描述
注意:hits包含两部分。
第一部分

"hits" : {
    "total" : {
      "value" : 2,#查询出来的总数
      "relation" : "eq" #查询出来的类型 [equls]
    },
    "max_score" : 1.1196322,#查询出来的文档的最大分值【匹配度】

第二部分:查询出来的内容

{
        "_index" : "dongkuijieit",
        "_type" : "user",
        "_id" : "3",
        "_score" : 1.1196322,
        "_source" : {
          "name" : "你好",
          "age" : 30,
          "desc" : "格式传说容",
          "tags" : [
            "渣男",
            "温暖"
          ]
        }
      }
2.3.2 过滤字段
GET /索引库/类型/_search
{
  "query": {
    "match": { #精准查询【使用分词器解析】
      "filed": "TEXT"
    }
  }
  , "_source": "{field}"
}

在这里插入图片描述

2.3.3 指定字段排序
GET /索引库/类型/_search
{
  "query": {
    "match": { #精准查询【使用分词器解析】
      "filed": "TEXT"
    }
  }, 
  "sort": [
   {
     "FIELD": {
       "order": "desc"
     }
   }
 ]
}

在这里插入图片描述

2.3.3 分页查询
GET /索引库/类型/_search
{
  "query": {
    "match": { #精准查询【使用分词器解析】
      "filed": "TEXT"
    }
  }, 
  "from": 0, #从第几页开始
  "size": 1 #每一页承载的数据
}
2.3.4 布尔值多条件查询(must)
GET /索引库/类型/_search
{
    "query":{
        "bool":{
            "must":[
                {
                    "match":{
                        "filed":"text"
                    }
                },
                {
                    "match":{
                        "filed":"text"
                    }
                }
            ]
        }
    }
}

在这里插入图片描述
注意:must相当于mysql中的and所有条件必须匹配

2.3.5 布尔值多条件查询(should)
GET /索引库/类型/_search
{
    "query":{
        "bool":{
            "should":[
                {
                    "match":{
                        "filed":"text"
                    }
                },
                {
                    "match":{
                        "filed":"text"
                    }
                }
            ]
        }
    }
}

在这里插入图片描述
注意:相当于mysql中的or,符合一个条件即可

2.3.6 布尔值多条件查询(must_not)
GET /索引库/类型/_search
{
    "query":{
        "bool":{
            "must_not":[
                {
                    "match":{
                        "filed":"text"
                    }
                },
                {
                    "match":{
                        "filed":"text"
                    }
                }
            ]
        }
    }
}

注意:对must_not数组下的字段中的数据取反【例如:查询年龄不为1的人】
在这里插入图片描述

2.3.7 过滤器
GET /索引库/类型/_search
{
   "query":{
       "bool":{
           "must_not":[
               {
                   "match":{
                       "filed":"text"
                   }
               },
               {
                   "match":{
                       "filed":"text"
                   },
                   "filter":{
                       "range":{
                           "age":{
                               "gte":30 #大于30
                           }
                       }
                   }
               }
           ]
       }
   }
}

在这里插入图片描述

2.3.8 多条件查询
GET /索引库/类型/_search
{
  "query": {
    "match": { #精准查询【使用分词器解析】
      "filed": "TEXT TEXT" #多个条件用空格查询
    }
  }, 
  
}
2.3.9 精准查询【term】
GET /索引库/类型/_search
{
  "query": {
    "term": { #精准查询
      "filed": "TEXT TEXT"
    }
  }, 
}

注意:termmatch最大的区别就是,term 就是根据每个字精准查询

2.3.10 高亮
GET /索引库/类型/_search
{
  "query": {
    "term": { #精准查询
      "filed": "TEXT TEXT"
    }
  }, 
   "highlight": {
    "fields": {
      "tags":{}
    }
  }
}

在这里插入图片描述

修改高亮格式:

GET /索引库/类型/_search
{
  "query": {
    "term": { #精准查询
      "filed": "TEXT TEXT"
    }
  }, 
   "highlight": {
    "pre_tags": "<p>", 
    "post_tags": "</p?", 
    "fields": {
      "tags":{}
    }
  }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值