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 Elasticsearches = 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的节点可以设置为多少?为什么看到的项目里大多都是设置的单数节点?

Elasticsearch(二):理解index, Document, Field相关推荐

  1. Elasticsearch 中的一些重要概念: cluster, node, index, document, shards 及 replica

    当我们开始使用 Elasticsearch 时,我们必须理解其中的一些重要的概念.这些概念的理解对于以后我们使用 Elastic Stack 是非常重要的.在今天的这篇文章里,我们先来介绍一下在 El ...

  2. Elasticsearch(二)

    Elasticsearch(二) 一. analysis与analyzer ​ analysis,文本分析是将全文本转换为一系列单词的过程,也叫分词.analysis是通过analyzer(分词器)来 ...

  3. Elasticsearch:理解 Elasticsearch Percolate 查询

    这篇博文深入探讨了 Elasticsearch 的 percolate query.此机制允许你根据已注册的查询对文档进行分类或标记.起初听起来很奇怪的是一个强大的机制,我们将在这篇文章中深入探讨. ...

  4. ElasticSearch 深入理解 三:集群部署设计

    ElasticSearch 深入理解 三:集群部署设计 ElasticSearch从名字中也可以知道,它的Elastic跟Search是同等重要的,甚至以Elastic为主要导向. Elastic即可 ...

  5. Elasticsearch:理解 Master,Elections,Quorum 及 脑裂

    集群中的每个节点都可以分配多个角色:master.data.ingest.ml(机器学习)等. 我们在当前讨论中感兴趣的角色之一是 master 角色. 在 Elasticsearch 的配置中,我们 ...

  6. elasticSearch Alternatively use a keyword field instead.

    elasticSearch Alternatively use a keyword field instead 情景再现 原因分析 情景再现 索引user中有三个字段,根据age进行排序查询出现的问题 ...

  7. 【ES笔记01】ElasticSearch数据库之index索引、doc文档、alias别名、mappings映射结构的基本操作

    这篇文章,主要介绍ElasticSearch数据库之index索引.doc文档.alias别名.mappings映射结构的基本操作. 目录 一.索引index相关操作 1.1.创建索引 1.2.查询索 ...

  8. ElasticSearch 系列: Index Template

    Index template Index template定义在创建新index时可以自动应用的settings和mappings. Elasticsearch根据与index名称匹配的index模式 ...

  9. shell脚本详解(十二)——Here Document免交互及Expect自动化交互

    shell脚本详解(十二)--Here Document免交互及Expect自动化交互 一.Here Document 免交互 1.格式 2.注意事项 3.免交互方式实现对行数的统计,将要统计的内容置 ...

最新文章

  1. asp.net 2.0中设定默认焦点按钮
  2. 如何短时间提高python面向对象_初识Python面向对象阶段,你们都是怎么过来的?
  3. 对象属性操作函数:hasattr(),getattr(),setattr()
  4. 嵌入式设备串口命名的地方
  5. java 读 xml_Java读写XML代码示例
  6. 一致性 Hash 算法学习(分布式或均衡算法)
  7. 使用Chrome快速实现数据的抓取(四)——优点
  8. Spring Cloud构建微服务架构—服务消费Ribbon
  9. vue Draggable实现拖动改变顺序
  10. 转载---安装mysql5.7,遇到的问题
  11. apache反向代理实战
  12. 关于三维扫描仪,你需要知道这些
  13. LLVM中的pass及其管理机制
  14. python虚拟环境是什么意思_python的虚拟环境详解
  15. python二级考试笔记_Python二级考试临时抱佛脚专用笔记——(一)数据表示与计算...
  16. Unity 2D光照(2D Light)和阴影(Shadow Caster 2D)
  17. 联想笔记本——更换SSD并重装系统
  18. 百度TTS,支持离线环境下使用
  19. CGroup(控制组)
  20. discuz防灌水机制

热门文章

  1. Apple App Store 音乐App 美国畅销榜单前30名使用记录
  2. 指标归因平台建设思路
  3. python下载电影视频_python爬虫:抓取下载电影文件,合并ts文件为完整视频
  4. react-native抽奖转盘制作
  5. 球半篮球分析,NBA总决赛:勇士VS凯尔特人
  6. Facebook投放广告总被拒?教你搞定FB广告投放
  7. ANE-IOS与AS的互通
  8. Scratch源码使用ArduinoConnector.ane与串口通信
  9. 专 业 学 习 成 果
  10. codeforces(E. Carrots for Rabbits)贪心