【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 @ 2023-03-11 22:06  酷酷-  阅读(55)  评论(0编辑  收藏  举报