Elasticsearch(二):理解index, Document, Field

本文介绍了Elasticsearch中的关键概念,包括文档、索引、字段等数据层面的概念,以及节点、分片等运维层面的概念,并提供了查看索引信息和文档数量的方法。

1. 概念

1.1 Document

定义: 可以被搜索数据的最小单位。

特性:文档会被序列化成Json格式,每个文档都有一个Uid,每个文档的id是独一无二的。

Metadata元数据:标注文档的相关信息

_index: 文档所属的索引名称

_type:文档所属类型名称

_id:文档唯一ID

_source:文档原始的json数量? ->现在项目中没有用到

_version:版本信息可以解决部分冲突问题

_score:相关性打分

截图如下:

1.2 index

定义:Index是Document的容器,是一类文档的集合

特性:index表示每个索引都有自己的mapping定义,定义包含文档的字段名和字段类型,Shard是指分片,是物理概念,Index的数据分布在Shard上

1.3 field

定义:Document中的字段,是文档中的某一个属性

 

2. 问题:

2.1 什么是节点?

节点的本质是一个ES实例,即一个Java进程,一台机器可以运行多个ES进程,建议一台机器运行一个ES节点。

特性:1)每个ES节点都有自己的名字,通过文件配置,或者启动时用 -E node.name = mynodename 指定。2)每个节点启动之后都会分配一个Uid,该Uid保存在data目录下。

2.2 有哪些节点?->节点是ES进程的话,ES一定有不同类型的进程

Master node, Data node, Coordinate node,冷热节点(如何理解冷热节点),机器学习节点,Cross cluster search

2.3 什么是分片?

分片用于存储数据,分为主分片和副分片。其中主分片将数据分布到集群的所有节点上,一个分片是一个运行的Lucence实例,主分片数量在创建索引是指定,后续无法修改。副分片用于解决数据高可用的问题,是主分片的拷贝,数量可以动态调整。

2.4分片分配有什么规则?

不能过大和过小,分片数量过小,后续无法增加节点进行水平扩展,单个分片数据量大,导致数据重新分配耗时。分片数量过大,会影响相关性结果打分,影响统计结果,浪费资源。

 

开发人员多研究使用Document与Index,运维人员多关心节点和分片(node and shard)

3. 相关API

打开Kibana,在Kibana的Dev tools中查看索引的相关信息

GET kibana_sample_data_ecommerce

得到如下结果,该结果显示索引全部信息,截图未包含所有信息

输入如下API,查看文档总数

GET kibana_sample_data_ecommerce/_count

得到结果显示共有4675条文档

.其他查看API

#这里使用的是类似于正则表示的方式查看所有以kibana开头的index
GET /_cat/indices/kibana*?v&s=index

#查看状态为绿的索引,
GET /_cat/indices?v&health=green

#按照文档个数排序
GET /_cat/indices?v&s=docs.count:desc

#查看具体的字段
GET /_cat/indices/kibana*?pri&v&h=health,index,pri,rep,docs.count,mt

#How much memory is used per index?
GET /_cat/indices?v&h=i,tm&s=tm:desc

4.python实现查看索引及索引状态等

查看index信息

from elasticsearch import Elasticsearch

es = Elasticsearch()
index_info = es.indices.get('index_name') #填入index的名称

查看文档数量

es.count(index='index_name')

 

链接:

https://elasticsearch-py.readthedocs.io/en/master/api.html#indices

 

问题:

1. Elasticsearch的节点可以设置为多少?为什么看到的项目里大多都是设置的单数节点?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值