zoukankan      html  css  js  c++  java
  • elasticsearch基本概念和基本语法

    Elasticsearch是基于Json的分布式搜索和分析引擎,是利用倒排索引实现的全文索引。

    优势:

      横向可扩展性:增加服务器可直接配置在集群中

      分片机制提供更好的分布性:分而治之的方式来提升处理效率

      高可用:提供复制(replia)机制

      实时性:通过将磁盘上的文件放入文件缓存系统来提高查询速度

    基本概念

    • Index: 一系列文档的集合,类似于mysql中数据库的概念
    • Type: 在Index里面可以定义不同的type,type的概念类似于mysql中表的概念,是一系列具有相同特征数据的结合。
    • Document: 文档的概念类似于mysql中的一条存储记录,并且为json格式,在Index下的不同type下,可以有许多document。
    • Shards: 在数据量很大的时候,进行水平的扩展,提高搜索性能
    • Replicas: 防止某个分片的数据丢失,可以并行得在备份数据里及搜索提高性能

    注意:分片和副本

    分片和副本
    
    一个ES Index下面有大量数据,超过硬件的存储能力时,可以在ES中将index分成多个分片(shard),将index分片有两个作用:
    
    横向扩展一个index的容量:
    
    提高计算的并行度。
    
    ES中的分片分为:主分片(primary Shard)和副本分片(Replica Shard).
    
           主分片:index中的每个Document都属于一个唯一的主分片,所有主分片的数据决定了一个index的容量 ,主分片(Primary Shard)数量需要在Index创建的时候指定,创建后不可修改
    
           副本分片:主分片的拷贝,不仅用于提供数据冗余,也提供数据读取服务(比如检索请求、Document获取请求等)。
    
           一个index中每个主分片的副本分片数既可以在index创建时候指定,也可以在index创建后动态修改
    
        默认情况设置:一个index有5个主分片,每个主分片有一个副本分片,所以默认情况下,index中总共有10个分片。
    
        ES会保证每一个节点上相同的数据只有一份,也就是说主分片和它自己的副本分片永远不会存在一个节点上。
    特点:
      Elasticsearch致力于隐藏分布式系统的复杂性。
      1、将文档分区到不同的容器或者分片(shards)中,它们可以存在于一个或多个节点中。
      2、将分片均匀的分配到各个节点,对索引和搜索做负载均衡。
      3、冗余每一个分片,防止硬件故障造成的数据丢失。
      4、将集群中任意一个节点的请求路由到相应数据所在的节点。
      5、无论是增加节点,还是移除节点,分片都可以做到无缝的扩展和迁移
    基本命令的使用
      1、新建一个Index,名为employee
       

       2、为employee的索引编入一个文档

       

       报错:

       

       解决办法:加入:-H "Content-Type: application/json"

       

       3、查看Document是否存在

       注意:查看某个路径下的Doucment是否存在使用Head,curl要加上 – I 选项打印HTTP header

       

       4、获取整个Document

       要获取一个完整的Document,使用GET并指定Document的路径,路径的形式为/<index>/<type>/<id>

       

       _source 字段中存储的是Document内部的数据

       5、更新Document

       说明ES中的Document不可更改,只能更新操作和编入Document相同—对想要更新的Document路径执行PUT,ES会将路径的Document版本加1

       将年龄修改为26,在查看,发现年龄修改成功,版本号为2

       

       

       6、删除Document

       

       7、删除索引

       

       8、创建Index

       

    二、

       1、查看index设置

        

       2、获取index mapping(可以查看某索引下字段的类型)

       

    三、Cluster  API

       1、用于查看集群和index的健康状况:健康状况分为三种:

      Green 、yellow、red。在shard级别:

    red

    无法在集群中找到该Shard

    Yellow

    Shard可以找到,但是Replica找不到

    green

    Shard和Replica都能找到

       2、查看这个集群的健康状况:

      

      3、查看集群信息

      

      4、查看指定索引的健康状况:这里指定的索引为employee和test

      

      5、查看集群中所有Index的健康状况

      

      6、Cluster stats API用于获取整个集群的统计数据,包括基础的Index指标(Shard数量、存储大小、内存使用量)和节点指标(节点数量、角色、计算资源使用状况等等).

      

      7、Cluster settings API可以用于查看(GET)或进行(PUT)集群的设置。

      

    语法:设置批量插入的队列大小
    
    curl -XPUT '<HOST>/_cluster/settings' -d '{
    
        "persistent": {
    
            "threadpool.bulk.queue_size" : 1000
    
        }
    
    }'

      8、查看es集群nodes状态

      

      9、查看所有节点的统计数据

      

      10、查看指定节点的统计数据

      

    四、检索

      1、指定索引进行空检索

      

      took:本次检索所花时间(单位毫秒)  timed_out:本次检索是否超时。

      _shards:所有本次检索涉及的分片数,分为所有涉及的(total)、成功的(successful)和失败的(failed)

      2、所有Index中的dev和external Type中检索,使用_all

      

      3、在整个ES集群的所有Document中检索

      

      

  • 相关阅读:
    9.12 其他样式;JS
    9.11 样式表
    9.9 样式表
    PHP延迟几秒后执行,PHP延迟执行,PHP停顿几毫秒后执行 usleep() 和 sleep()
    PHP 去除url参数中出现+、空格、=、%、&、#等字符的解决办法, PHP去除影响url路径的字符
    java第一堂课-常用的电脑快捷键操作和重要的dos命令
    常用第三方接口,支付宝支付,微信支付,软著,IOS开发者账号
    苹果开发者账号申请流程完整版 https://www.jianshu.com/p/655380201685
    thinkphp 去重查询
    将数据导【入】【excel表】格式 前端页面
  • 原文地址:https://www.cnblogs.com/yfb918/p/10488215.html
Copyright © 2011-2022 走看看