Elasticsearch常用命令&基础知识

Elasticsearch常用命令&基础知识


> 关于ES的 index 和 type

ES中的 type 允许我们在一个 index 里存储多种类型的数据,这样就可以减少 index 的数量。在使用时,向每个文档加入 _type 字段,在指定 type 搜索时就会被用于过滤。
使用 type 的优点:搜索一个 index 下的多个 type 时,和只搜索一个 type 相比,没有增加额外的开销,因为需要合并结果的分片数量是一样的。
使用 type 的限制:不同 type 里的字段需要保持一致。一个 index 下的不同 type 里有两个名字相同的字段,他们的数据类型和配置也必须一致。
只在某个 type 里存在的字段,在其他没有该字段的 type 中也会消耗资源。如果连续文档之间的差异太大,稀疏的 posting list 的压缩效率不高。这个问题在 doc value 上更为严重:为了提高速度,doc value 通常会为每个文档预留一个固定大小的空间,以便文档可以被高速检索。这意味着,如果 Lucene 确定它需要一个字节来存储某个数字类型的字段,它同样会给没有这个字段的文档预留一个字节。因此,建模的时候尽量避免稀疏。
所以,实际使用时,只有同一个 index 的中的 type 都有类似的映射时,才应该使用 type。否则,使用多个 type 可能比使用多个 index(每个 index 仅一个 type)消耗的资源更多。
注意:ES 官方在新版本(ES7.x)版本上,就移除了 type。

 

> ES命名规范

ES index 索引命名规范:
1)受文件系统的限制,仅可能为小写字母,不能下划线开头
2)不能包括 , /, *, ?, ", <, >, |, 空格, 逗号, #
3)7.0版本之前可以使用冒号:,但不建议使用并在7.0版本之后不再支持
4)不能以这些字符 -, _, + 开头
5)不能包括 . 或 …
6)长度不能超过 255 个字符

ES类型命名规范:
类型名称可以包括除了null的任何字符,不能以下划线开头。7.0版本之后不再支持类型,默认为_doc。

ES字段命名规范:
对于字段命名规范及不能完全使用空格,点号可以使用。使用使用点号时也要注意:需要保证对象路径必须是有效的。所以,对象命名时

例如:

"data.person.name": "frank" 等同于:

"data": {
  "person": {
    "name": "frank"
  }
}

如果命名为:
"data.": {
  "person": {
    "name": "frank"
  }
}
对象data以点号结尾,就会导致(data..person)路径解析混乱,需要避免这种使用。

> ES常用命令
查询所有 index:
http://localhost:9200/_aliases?pretty=true

{
  "index01" : {
    "aliases" : { }
  },
  "testidx" : {
    "aliases" : { }
  },
  "index03" : {
    "aliases" : { }
  }
}
说明:如果不带参数“?pretty=true”,返回的数据为JSON压缩格式。参数也可以省略为”?preppy“


查询所有 index 索引状态:
http://localhost:9200/_cat/indices?v
health status index                uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   index01                lA7laqD7SsyI67WnuZLU1g   5   0          1            0        7kb            7kb
green  open   testidx                yxyH3n3SQl6jl0tpQSI-Cw   5   0          1            0      4.6kb          4.6kb
green  open   index03                WleL8SWjRkehPfbsbwyOWw   5   0     345196           98     14.3mb         14.3mb


查询集群健康状态(*表示ES集群的master主节点):
http://localhost:9200/_cat/nodes?v
ip         heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.28.0.1           22          97   5    0.70    0.34     0.22 mdi       *      LM8O7H6

http://localhost:9200/_cat/health?pretty
1611576205 20:03:25 elasticsearch yellow 1 1 84 84 0 0 30 0 - 73.7%


查看集群分片状态:
http://localhost:9200/_cluster/health?pretty
{
  "cluster_name" : "elasticsearch",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 84,
  "active_shards" : 84,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 30,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 73.68421052631578
}

单节点的节点数(副本数)为1,status会显示为yellow。集群存在多副本,status会显示正常。

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值