【ES】基础操作

1  前言

记录一下平时常用的 ES 的一些基础操作。

2  基本的系统操作

GET /_cat/health?v  查看当前的集群状态信息
GET /_cat/nodes?v   查看集群节点信息
GET /_cat/indices?v 查看所有索引及数据大小

3  索引操作

复制代码
PUT /mytest         创建一个mytest名字的索引
GET /mytest         查看索引的定义信息
GET /mytest/_settings
GET /mytest/_mapping
HEAD mytest         判断索引是否存在404 不存在 , 200 存在
GET /_stats         查看所有的索引状态
GET /mytest/_search 查询mytest索引,默认返回一条数据
GET /mytest/_doc/48902    知道具体的id可以这样查
GET /mytest/_doc/50656/_termvectors?fields=productname   查看分词结果

POST /mytest/_open  打开索引
POST /mytest/_close 关闭索引
DELETE /mytest      删除索引
PUT /mytest/_mapping   更新索引映射
{
  "properties": {
    "name": {  ==字段名
      "type": "text",    ==表示可以分词
      "index": true      ==表示可以条件查询
    },
    "age": {
      "type": "keyword",   ==表示不分词查找
      "index": false       ==表示不能条件查询
    },
    "tel": {
      "type": "keyword",
      "index": true
    }
  }
}
复制代码

4  文档操作

注意查询条件中有中文的 es会分词 形成一个个关键词去匹配数据,不想分词话 match改为match_phrase即可
复制代码
POST /mytest/_doc       创建文档  _id字段也就是该文档的唯一标识。这个id也是可以自定义的
POST /mytest/_doc/1001  创建文档  1001为自主产生id方式
GET /mytest/_doc/1001   id查看文档
GET /mytest/_search     查看所有文档
GET /mytest/_search     查询所有文档
{
  "query": {
    "match_all": {}
  }
}
GET /mytest/_search     查询文档中name=11的  如果是文字的话会分词匹配
{
  "query": {
    "match": {
      "name": "11"
    }
  },
  "highlight": {        name字段会高亮
    "fields": {"name": {}}
  }
}
GET /mytest/_search    分页查询  from起始行0开始 size页大小
{
  "query": {
    "match_all": {
     
    }
  },
  "from": 0,
  "size": 2
}
GET /mytest/_search   查询 _source指定返回的列 sort进行排序
{
  "query": {
    "match": {
      "_id": "EZLM2IIBWjDSANi_ebIR"
    }
  }, 
  "_source": ["title"],
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
}
GET /mytest/_search    查询 name分词我是大娃&&price=899
                       must改成should 两者就是or的关系
{
  "query": {
    "bool": {
      "must/should": [
        {
          "match": {
            "name": "我是大娃"
          }
        },
        {
          "match": {
            "price": "899"
          }
        }
      ],
      "filter": {              ====filter范围查询
        "range": {
          "price": {
            "gte": 10,
            "lte": 2000
          }
        }  
      }
    }
  }
}
GET /mytest/_search     按price分组 
{
  "aggs": {     //聚合操作
    "price_group": {  //名称 随意起名字
      "terms": {   // 分组
        "field": "price"  //分组字段
      }
    }
  },
  "size": 0   //默认会查出原始数据,加上这个表示不要原始数据
}
GET /mytest/_search?q=name:大娃  查看name中包含大娃的
PUT /mytest/_doc/1001   全量更新
POST /mytest/_doc/1001  修改文档  部分更新
POST /mytest/_update/1001  修改某一条给定数据的局部信息
{
  "doc": {
    "age": 132
  }
}
DELETE /mytest/_doc/1001  删除文档
复制代码

5  小结

一些日常的基础 ES 操作,平时用的一些,有记录不对的地方欢迎指正哈。

posted @   酷酷-  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示