tnblog
首页
视频
资源
登录

Elasticsearch 基本概念:索引、文档和REST API

6639人阅读 2020/8/8 18:34 总访问:3658971 评论:0 收藏:0 手机
分类: 云产品

elasticsearch

Elasticsearch 基本概念:索引、文档和REST API


前言

为了了解 Elasticsearch 如何构成,我们首先需要理解索引(Index)类型(Type)文档(Document)字段(Field)四个基本的概念。

它们的关系大致如上图所示,索引包含一个或多个类型,类型可以认为是关系型数据库中的一个表,类型有一个或多个文档,文档中有一个和多个字段,字段又是以键值对构成对。
如果我们把 Elasticsearch 看作一个数据库的话,也可以这样理解:

数据库中 Elasticsearch中
Table Index(Type)
Row Document
Column Filed
Schema Mapping
Sql Dsl

Elasticsearch 与传统数据库的区别在于以下两点

文档(Document)

  • Elasticsearch 是面向文档的,文档是所有可搜索数据的最小单位
    • 日志文件中的日志项
    • 一部电影的具体信息 / 一张唱片的详细信息
    • mp3 播放器里的一首歌 / 一篇 PDF 文档中的具体内容
  • 文档会被序列化成 JSON 格式,保存在 Elasticsearch 中
    • JSON 对象由字段组成
    • 每个字段都有对应的字段类型(字符串 / 数值 / 布尔 / 日期 / 二进制 / 范围类型)
  • 每个文档都有一个 Unique ID
    • 你可以自己指定 ID
    • 或者通过 Elasticsearch 自动生成


JSON 文档


  • 一篇文档包含了一系列的字段。类似数据库表中一条记录。
  • JSON 文档,格式灵活,不需要预先定义格式。
    • 字段的类型可以指定或者通过 Elasticsearch 自动推算
    • 支持数组 / 支持嵌套



例如如下例子

  1. movieId,titile,genres
  2. 1,Toy Story (2020),Adventure|Animation|Children|Comedy|Fantasy


文档元数据


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

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

索引

  • Index - 索引是文档的容器,是一类文档的结合
    • Index 体现了逻辑空间的概念:每个索引都有自己的 Mapping 定义,用于定义包含的文档的字段名和字段类型
    • Shard 体现了物理空间的概念:索引中的数据分散在 Shard 上
  • 索引的 Mapping 与 Settings
    • Mapping 定义文档字段的类型
    • Setting 定义不同的数据类型

索引的不同语意

索引(动词)文档到 Elasticsearch 的索引(名词)中


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

Type版本特点

  • 在 7.0 之前,一个 index 可以设置多个 Types
  • 6.0 开始,Type 已经被 Deprecated。7.0 开始,一个索引只能创建一个 Type - “_doc”

Elasticsearch 中的 Result Api

Kibana 对 Elasticsearch的索引与管理

查看索引管理


通过 Dev Tool 工具对索引的相关查询

  1. //查看索引相关信息
  2. GET kibana_sample_data_ecommerce
  3. //查看索引的文档总数
  4. GET kibana_sample_data_ecommerce/_count
  5. //查看前10条文档,了解文档格式
  6. POST kibana_sample_data_ecommerce/_search
  7. {
  8. }
  9. //_cat indices API
  10. //查看 indices
  11. GET /_cat/indices/kibana*?v&s=index
  12. //查看状态为绿的索引
  13. GET /_cat/indices?v&health=green
  14. //按照文档个数排序
  15. GET /_cat/indices?v&s=docs.count:desc
  16. //查看具体的字段
  17. GET /_cat/indices/kibana*?pri&v&h=health,index,pri,rep,docs.count,mt

大家可以执行看看。


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

Elasticsearch 安装与部署

Elasticsearch 安装与部署[TOC] 环境准备 Java 8.0以上的环境本机环境为Mac,Java 14.0.2 获取 Elasticsearch 安装包 ...

Docker运行 Elasticsearch Kibana和Cerebro

Docker运行 Elasticsearch Kibana和Cerebro[TOC] Demo 运行 Docker-compose,本地构建更高效的开发环境,更直观地了解 El...

Elasticsearch 基本概念节点集群分片及副本

Elasticsearch 基本概念:节点、集群、分片及副本[TOC] 分布式系统的可用性与扩展性 高可用性 服务可用性 - 允许有节...

Elasticsearch 文档的基本CRUD与批量操作

Elasticsearch 文档的基本CRUD与批量操作[TOC] 文档的 CRUD Index PUT my_index/_doc/1 {“user”:...

Elasticsearch 倒排索引(运用Analyzer进行分词)

Elasticsearch 倒排索引[TOC] 正排与倒排索引 我们以一本书为例子,一本书的目录为正排索引,它将排列整本书的主要大纲...

Elasticsearch Search API概览

Elasticsearch Search API概览[TOC] Search API 通过搜索获取的数据方式有两种。 URL Search 在URL中使用查询参数...

Elasticsearch URL Search详解

Elasticsearch URL Search详解[TOC] 通过 URL Query 实现搜索举例: Get /movies/_search?q=2020&df=title&sort...

Elasticsearch Request Body与Query DSL简介

Elasticsearch Request Body与Query DSL简介[TOC] Request Body Search 将查询语句通过 HTTP Resquest Body 发送给 Ela...

Elasticsearch 显式Mapping设置与常见参数介绍

Elasticsearch 显式Mapping设置与常见参数介绍[TOC] 如何显示的定义一个MappingPut movies { "mappings" ...

Elasticsearch 多字段特性及Mapping中配置自定义Analyzer

Elasticsearch 多字段特性及Mapping中配置自定义Analyzer[TOC] 多字段类型多字段特性 厂家名字可以实现精确匹配,增加一...

Elasticsearch Index Template 和 Dynamic Template

Elasticsearch Index Template和Dynamic Template[TOC] 什么是 Index Template 可以通过一定的规则去设定 Mappings 和 Se...

Elasticsearch 聚合分析简介

Elasticsearch 聚合分析简介[TOC] 什么是聚合(Aggregation) 聚合:对有关的数据进行内容挑选、分析、归类(筛选),最...

Elasticsearch 基于词项和基于全文的搜索

Elasticsearch 基于词项和基于全文的搜索[TOC] 基于 Term 的查询Term 的重要性Term 是表达语意的最小单位。搜索和利用语言...

.NET Core使用Elasticsearchwindows安装Elasticsearch与kibana

一:安装java环境ElasticSearch是基于Java的所以先要安装Java,dkj,当然下载的ElasticSearch也带得也jkd也可以使用那个。下...

.NET Core使用ElasticsearchCORE操作ES基础环境与简单查询

Elasticsearch使用版本7.12.0安装Elasticsearch与kibana可以参考:https://www.tnblog.net/aojiancc2/article/details/5875...
这一世以无限游戏为使命!
排名
2
文章
657
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术