通过Kibana可视化界面操作的一些命令记录
- 日常学习记录,慢慢更新
- 使用的是elasticsearch 8.2版本
- _ 开头的都是es的api
- 可以从一定程度上从关系型数据库如Mysql的角度来学习ES
查询相关
查询当前集群状态 --status字段显示为yellow,表示缺少副本
GET /_cat/health?v
查询当前节点情况
GET /_cat/nodes?v
查询索引列表
GET /_cat/indices?v
查看索引的分片情况 xwl_test为索引名
GET /_cat/shards/xwl_test?v
查询某条具体索引的情况
GET /xwl_test
查询索引的文档内容 默认查10条
GET /xwl_test/_search
查询指定ID的索引
GET /xwl_test/_doc/1
注意:这里的_doc是高版本的ES的写法,后面的1表示文档ID,文档ID并不一定是数字!
插入相关
创建索引
PUT /xwl_test
向指定索引插入文档(指定Id)
PUT /xwl_test/_doc/1
{
“name”:“xwl”,
“age”:23,
“birth”:“1999-10-13”,
“address”:“浙江省湖州市安吉县梅溪镇”
}
注意:
1.ES会自动帮你转换数据类型,不同于关系型数据库需要预先定义好表的类型如上:name -> keyword ,age -> long ,birth -> date,address -> keyword可以使用GET /xwl_test 查看
2.同一ID语句可以被执行多次,但传入的参数变化,那么第二次的内容会覆盖第一次的内容。比如我第一次传入了name,age,birth,address第二次只传了name,那么通过GET /xwl_test/_doc/1 查询时只有name一个字段
3.向指定索引插入文档(随机Id) --生成的ID是一个字符串,注意要用POST
POST /xwl_test/_doc/
{
“name”:“xwl”,
“age”:23,
“birth”:“1999-10-13”,
“address”:“浙江省湖州市安吉县梅溪镇”
}
更新相关
1.根据文档ID进行更新,没有的字段会被新增
POST /xwl_test/_update/1
{
“doc”:{
“name”:“adniasd”,
“age”:199,
“tall”:189
}
}
注意:
1.要使用_update
2.需要更新的字段需要在外面套上 “doc”:{},否则会导致该文档结构错乱
tips:
es常见数据类型
1.数字类型:
long integer short byte double float half_float scaled_float unsigned_long Keywords:
2 .Keywords:
1.keywords :适用于索引结构化的字段,可以用于过滤、排序、聚合。keyword类型的字段只能通过精确值(exact value)搜索到。Id应该用keyword。keyword字段通常用于排序,汇总和Term查询,例如term。
2.constant_keyword:始终包含相同值的关键字字段
3.wildcard:可针对类似grep的通配符查询优化日志行和类似的关键字值
3.dates(时间类型):
包括date和date_nanos.
4.alias:
为现有字段定义别名。
5.text:
当一个字段是要被全文搜索的,比如Email内容、产品描述,这些字段应该使用text类型。设置text类型以后,字段内容会被分析,在生成倒排索引以前,字符串会被分析器分成一个一个词项。text类型的字段不用于排序,很少用于聚合。(解释一下为啥不会为text创建正排索引:大量堆空间,尤其是在加载高基数text字段时。字段数据一旦加载到堆中,就在该段的生命周期内保持在那里。同样,加载字段数据是一个昂贵的过程,可能导致用户遇到延迟问 题。这就是默认情况下禁用字段数据的原因)