美文网首页
Elasticsearch文档、索引和rest api

Elasticsearch文档、索引和rest api

作者: ajajaj | 来源:发表于2020-07-26 19:41 被阅读0次

    本文来自极客时间《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 定义不同的数据分布

    索引的不同语意

    image
    • 一个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-很容易被各种语言调用

    image

    一些基本的API

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

    原文地址

    [http://cbaj.gitee.io/blog/2020/07/26/Elasticsearch%E6%96%87%E6%A1%A3%E3%80%81%E7%B4%A2%E5%BC%95%E5%92%8Crest%20api/#more](http://cbaj.gitee.io/blog/2020/07/26/Elasticsearch文档、索引和rest api/#more)

    相关文章

      网友评论

          本文标题:Elasticsearch文档、索引和rest api

          本文链接:https://www.haomeiwen.com/subject/medglktx.html