专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Elasticsearch文档、索引和rest api

本文来自极客时间《Elasticsearch核心技术实战》 课程学习笔记,感兴趣的同学可以订阅该课程

基本概念

文档

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

    例如:

    • 日志文件中的日志项
    • 一部电影中的具体信息
    • 一首歌/一个PDF文档的具体内容
  • 文档会被序列化为JSON格式,保存在Elasticsearch中
    • JSON对象由字段组成
    • 每个字段都有相应的字段类型(字符串/数值/布尔/日期/二机制/范围类型)
  • 每个文档都有一个Unique ID
    • 可以自己指定ID
    • 或者通过Elasticsearch自动生成

Json文档

  • 一篇文档包含了一系列的字段,类似于数据库中的一条记录
  • JSON 文档,格式灵活,不需要预先定义格式
    • 字段的类型可以指定或者通过Elasticsearch自动推算
    • 支持数据/支持嵌套
movieId,title,genres
1,Toy Story(1995),AdvenTure|Animation|Children|Comedy|Fantasy

  • csv file通过es转为json
{
    "year" : 1995,
    "@version" : 1,
    "genres" : [
        "AdvenTure","Animation",
        "Children","Comedy","Fantasy"
    ],
    "id" : "1",
    "title" : "Tony Story"
}

文档的元数据

{
    "_index" : "movies",
    "_type" : "_doc",
    "_id" : "1",
    "_score" : "14.626",
    "_source" : {
        "year" : 1995,
        "@version" : 1,
        "genres" : [
            "AdvenTure","Animation",
            "Children","Comedy","Fantasy"
        ],
        "id" : "1",
        "title" : "Tony Story"
    }
}

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

索引

{
    "movies" : {
        "settings" : {
            "index" : {
                "create_date" : "15526261177",
                "number_of_shards" : "2",
                "number_of_replicas" : "0",
                "uuid" : "",
                "verison" : {
                    "created" : "302302"
                },
                "provided_name" : "movies"
            }
        }
    }
}

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

索引的不同语意

44_1.png

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

type

  • 7.0之前,一个index可以设置多个types
  • 7.0之后,一个索引只能创建一个Type-“_doc”

抽象和类比

RDBMS Elasticsearch
Table Index(Type)
Row Document
Column Field
Schema Mapping
SQL DSL

1、7.0之前,一个index可以设置多个types

2、目前Type已经被Deprecated,7.0开始,一个索引只能创建一个Type-“_doc”

3、传统关系型数据库和Elasticsearch的区别

  • Elasticsearch – Schemaless /相关性/高性能全文检索
  • RDMS – 事务性/Join

Rest API-很容易被各种语言调用

44_2.png

一些基本的API

  • Indices
    • 创建Index
      • PUT movies
    • 查看所有Index
      • _cat/indices

原文地址

cbaj.gitee.io/blog/2020/0…

文章永久链接:https://tech.souyunku.com/28488

未经允许不得转载:搜云库技术团队 » Elasticsearch文档、索引和rest api

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们