热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Elastic基本概念索引和文档

索引文档偏向于开发人员的视角,是一个逻辑上面的概念,节点和分片呢偏向运维人员的视觉,偏向是物理的概念文档(Document&

索引 文档偏向于开发人员的视角,是一个逻辑上面的概念,节点和分片呢偏向运维人员的视觉,偏向是物理的概念

 


文档(Document)



Elasticsearch 是面向文档的,文档是所有可搜索数据的最小单位


  • 日志文件中的日志项 

  • —本电影的具体信息/一张唱片的详细信息。
  • MP3 播放器里的一首歌 /一篇 PDF 文档中的具体内容

文档会被序列化成 JSON格式,保存在 Elastlesearch 中


  • JSON 对象由字段组成
  • 每个字段都有对应的字段类型(字符串/数值/布尔/日期/二进制/范围类型)

每个文档都有一个 Unique ID


  • 你可以自己指定 ID
  • 或者通过 Elasticsearch 自动生成

你可以理解文档为关系型数据库里面的一条记录

 


JSON 文档



 一篇文档包含了一系列的字段。类似数据库表中一列

JSON 文档,格式灵活,不需要预先定义格式


  •  字段的类型可以指定或者通过Elasticsearch 自动推算
  • 支持数组/ 支持嵌套

从csv文件中读取到raw data是关于电影的,通过logstash进行转化之后进入es之后就是json的格式了。

Json的每个字段都有其数据类型,es可以根据其字段做一个数据类型的推算。

上面可以看到在es当中数据还是支持数组的,支持嵌套

 

 


文档的元数据



元数据,用于标注文档的相关信息


  • _index-文档所属的索引名
  • _type-文档所属的类型名
  • _id - 文档唯一 ID
  • _source∶ 文档的原始 JSON 数据
  • _all 整合所有字段内容到该字段,已被废除
  • _version∶ 文档的版本信息
  • _score∶ 相关性打分

 每篇文档都有其元数据,比如_index表示文档所属的索引名字

All字段在7.0已经被废除了,在早期版本

_version  代表文档在系统里面的版本,当有大量数据并发读写的时候,版本信息可以很好的帮你解决版本冲突的问题

在全文检索的时候,相关性非常重要,所以es根据结果的算分也就是_score在该文档查询当中的值

r

 


索引



 Index-索引是文档的容器,是一类文档的结合


  • Index 体现了逻辑空间的概念∶每个索引都有自己的 Mapping 定义,用于定义包含的文档的字段名和字段类型
  • Shard 体现了物理空间的概念∶索引中的数据分散在 Shard上

索引的 Mapping 与 Settings


  • Mapping 定义文档字段的类型
  • Setting 定义不同的数据分布

简单做个理解就是索引当中的数据最后是被分配在shard分片上

在一个索引上面可以为其设置mapping和settings

Setting主要是可以去指定究竟要用多少分片,以及数据是如何分布的

 

 


索引的不同语意




  • 名词∶一个Elasticsearch集群中,可以创建很多个不同的索引
  • 动词∶ 保存一个文档到Elasticserch的过程也叫索引(indexing)ES 中,创建一个倒排索引的过程
  •  名词∶一个B 树索引,一个倒排索引

倒排索引是搜索引擎当中一个非常重要的数据结构

 

 


抽象与类比



如果将关系型数据库和elastich做一个并不是非常恰当的类比,其实,当你谈到关系型数据库表的时候对应的就是es里面的索引。那么关系型数据库里面的每一条记录在es当中就是文档。关系型数据库里面的每个字段就是es当中文档的一个字段。Es当中的mapping就是关系型数据库当中schema中的表定义

Sql可以对关系型数据库进行查询的,在es当中也提供了DSL帮助你进行各种各样的查询

其实es和关系型数据库有各自的优缺点,当你要进行全文检索,对搜索结果进行算分的时候es会特别的合适。当你对数据事务性要求特别高的时候,那么需要将传统的关系型数据库和es结合使用

为了方便其他语言的整合,es提供了丰富的api来给其他程序进行调用,所以程序要和es进行集成的时候,只需要发出http的请求就会得到相应的结果

 


推荐阅读
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • ECharts 官方提供了丰富的图表示例,但实际项目中往往需要从后端动态获取数据。本文将详细介绍如何从后端获取数据并将其转换为 ECharts 所需的 JSON 格式,以实现动态饼图的展示。 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 未定义的打字稿记录:探索其成因与解决方案 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 深入解析 Synchronized 锁的升级机制及其在并发编程中的应用
    深入解析 Synchronized 锁的升级机制及其在并发编程中的应用 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 在处理大规模数据数组时,优化分页组件对于提高页面加载速度和用户体验至关重要。本文探讨了如何通过高效的分页策略,减少数据渲染的负担,提升应用性能。具体方法包括懒加载、虚拟滚动和数据预取等技术,这些技术能够显著降低内存占用和提升响应速度。通过实际案例分析,展示了这些优化措施的有效性和可行性。 ... [详细]
  • 深入解析 SAP UI5 Page 控件的构造函数参数及其应用
    深入解析 SAP UI5 Page 控件的构造函数参数及其应用 ... [详细]
author-avatar
journeylis-1998_246
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有