ElasticSearch版本
{
"name" : "data-slave1",
"cluster_name" : "data-es",
"cluster_uuid" : "xxxxxxxxxx-eMwxw",
"version" : {
"number" : "7.2.1",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "fkg6eb20",
"build_date" : "2021-07-24T17:58:29.979462Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
集群管理命令
Cat API
cat aliases
cat aliases 命令用于显示索引的别名,也包括过滤器和路由信息。
GET /_cat/aliases?v
- alias 别名
- index 索引别名指向
- filter 过滤规则
- routing.index 索引路由
- routing.search 搜索路由
cat allocation
cat allocation命令可以查看每个节点分配的分配数量以及它们所使用的硬盘空间大小
GET /_cat/allocation?v
- shards 分片数
- disk.indices 索引index占用的空间大小
- disk.used 已用磁盘空间
- disk.avail 可用磁盘空间
- disk.total 磁盘空间总量
- disk.percent 磁盘已使用百分比
- host 节点主机地址
- ip 节点ip
- node 节点名称
cat count
cat count 命令可以快速查询整个集群或者单个索引的文档数量。
GET /_cat/count?v
- epoch 自标准时间(1970-01-01 00:00:00)以来的秒数
- timestamp 时间,存在8小时时间差问题
- count 文档总数
GET /_cat/count/[索引名称]?v
cat fielddata
cat fielddata命令用于查看当前集群中每个数据节点上被fielddata所使用的堆内存大小。
GET /_cat/fielddata?v
在Elasticsearch中,Field Data是用于在聚合(aggregation)和排序(sorting)操作中对文档字段进行分析和处理的一种数据结构。它是一个缓存在内存中的数据结构,用于快速访问和处理字段值。
Field Data可以被认为是对文档字段进行预处理的一种形式,它将字段值从原始的文本形式转换成可供聚合和排序操作使用的数据类型。例如,将一个字符串形式的日期字段转换成一个时间戳,或将一个字符串形式的数字字段转换成一个数字。
使用Field Data可以有效地提高聚合和排序操作的性能,因为它可以避免在每次操作中都对原始字段值进行解析和转换。此外,Field Data还可以通过使用缓存来进一步提高性能,以便更快地访问和处理字段值。
然而,Field Data也有一些限制和注意事项。首先,Field Data需要占用一定的内存空间,因此在处理大量数据时可能会导致内存消耗过高。其次,Field Data只能在不可变的字段上使用,因为一旦字段值发生变化,就需要重新生成Field Data。
为了使用Field Data,可以在字段映射中将字段的fielddata属性设置为true。例如,以下是一个将timestamp字段设置为可使用Field Data的映射示例:
{
"mappings": {
"properties": {
"timestamp": {
"type": "date",
"fielddata": true
}
}
}
}
需要注意的是,在大多数情况下,Elasticsearch会自动选择合适的字段数据存储方式。因此,只有在确实需要对字段进行聚合和排序操作时,才需要显式地启用Field Data。