• elasticsearch基本概念


    文档(Document)

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

    日志文件中的日志项
    一本电影的具体信息 / 一张唱片的详细信息
    MP3播放器里的一首歌 / 一篇 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 转换 JSON

    {
    	“year” : 1995,
    	“@version”: “1”,
    	“genre” : [
    		“Adventure”,”Animation”,”Children”,”Comedy”,”Fanasy”],
    	“id”:”1”,
    	“title”: “Toy Story”
    }
    

    文档的元数据

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

    索引

    {
      "movies" : {
        "settings" : {
          "index" : {
            "creation_date" : "1567998792669",
            "number_of_shards" : "1",
            "number_of_replicas" : "1",
            "uuid" : "2aDN9qjYQ5WjPqf3MiW0Lw",
            "version" : {
              "created" : "7030199"
            },
            "provided_name" : "movies"
          }
        }
      }
    }
    

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

    索引的不同语意


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

    抽象与类比

    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

    很容易被各种语言调用

    API使用

    查看索引相关信息

    GET /kibana_sample_data_ecommerce
    

    查看索引的文档总数

    GET /kibana_sample_data_ecommerce/_count
    {
      "count" : 4675,
      "_shards" : {
        "total" : 1,
        "successful" : 1,
        "skipped" : 0,
        "failed" : 0
      }
    }
    

    查看文档前10条,了解文档格式

    POST /kibana_sample_data_ecommerce/_search 
    

    查看indices

    GET /_cat/indices/kibana*?v&s=index
    health status index                        uuid                   pri rep docs.count docs.deleted store.size pri.store.size
    green  open   kibana_sample_data_ecommerce qfjtoNdYRXyNE9I_1U26NA   1   0       4675            0      4.6mb          4.6mb
    green  open   kibana_sample_data_flights   u9u-xXpZSK2H0l7TNMT6dA   1   0      13059            0      6.4mb          6.4mb
    green  open   kibana_sample_data_logs      PJNZBh7oR5y0SPnuedT_Uw   1   0      14074            0     11.4mb         11.4mb
    

    查看索引状态为绿的索引

    GET /_cat/indices?v&health=green
    health status index                        uuid                   pri rep docs.count docs.deleted store.size pri.store.size
    green  open   .kibana_task_manager         k9d_SEA4RsKSzOT2Ss0G-A   1   0          2            0     30.6kb         30.6kb
    green  open   kibana_sample_data_ecommerce qfjtoNdYRXyNE9I_1U26NA   1   0       4675            0      4.6mb          4.6mb
    green  open   kibana_sample_data_logs      PJNZBh7oR5y0SPnuedT_Uw   1   0      14074            0     11.4mb         11.4mb
    green  open   kibana_sample_data_flights   u9u-xXpZSK2H0l7TNMT6dA   1   0      13059            0      6.4mb          6.4mb
    green  open   .kibana_1                    AYCJSfgoSwSDcg3lD1Xoog   1   0        152            1        1mb            1mb
    

    按照文档个数排序

    GET /_cat/indices?v&s=docs.count:desc
    health status index                        uuid                   pri rep docs.count docs.deleted store.size pri.store.size
    green  open   kibana_sample_data_logs      PJNZBh7oR5y0SPnuedT_Uw   1   0      14074            0     11.4mb         11.4mb
    green  open   kibana_sample_data_flights   u9u-xXpZSK2H0l7TNMT6dA   1   0      13059            0      6.4mb          6.4mb
    yellow open   movies                       2aDN9qjYQ5WjPqf3MiW0Lw   1   1       9743            0      1.2mb          1.2mb
    green  open   kibana_sample_data_ecommerce qfjtoNdYRXyNE9I_1U26NA   1   0       4675            0      4.6mb          4.6mb
    green  open   .kibana_1                    AYCJSfgoSwSDcg3lD1Xoog   1   0        152            1        1mb            1mb
    green  open   .kibana_task_manager         k9d_SEA4RsKSzOT2Ss0G-A   1   0          2            0     30.6kb         30.6kb
    

    查看具体字段

    GET /_cat/indices/kibana*?pri&v&h=health,index,pri,rep,docs.count,mt
    health index                        pri rep docs.count mt pri.mt
    green  kibana_sample_data_ecommerce   1   0       4675  0      0
    green  kibana_sample_data_logs        1   0      14074  0      0
    green  kibana_sample_data_flights     1   0      13059  0      0
    

    查看每个索引占用的内存

    GET /_cat/indices?v&h=i,tm&s=tm:desc
    i                                tm
    kibana_sample_data_logs      84.9kb
    kibana_sample_data_flights   81.8kb
    kibana_sample_data_ecommerce 40.2kb
    .kibana_1                    22.3kb
    movies                        8.1kb
    .kibana_task_manager          4.7kb
    
  • 相关阅读:
    使用Docker Swarm搭建分布式爬虫集群
    如果你不知道做什么,那就学一门杂学吧
    正则表达式re.sub替换不完整的问题现象及其根本原因
    Visual Studio 2019 正式版今日发布 key
    net core 记录自定义端口多个方式
    HTTP Error 500.0
    来自后端的逆袭 blazor简介 全栈的福音
    创建一个RAS 非对称 公私密钥示例
    树莓派安装window ioT
    WPF USB设备采集开源工具介绍
  • 原文地址:https://www.cnblogs.com/anyux/p/11977543.html
Copyright © 2020-2023  润新知