资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 前沿技术 > 大数据 > 大数据系统

ElasticSearch 系列:Index

大数据系统 更新时间: 发布时间: 计算机考试归档 最新发布

ElasticSearch 系列:Index

Index
  • (Index)索引就像关系数据库中的“数据库”。它有一个定义多种类型的映射。
  • (index)索引是一个逻辑命名空间,它映射到一个或多个主分片,并且可以有零个或多个副本分片。
Index配置
  • Index 的配置可以参考官方文档
  • 这里只是说明比较重要的两个参数。
  • “number_of_shards”: 分片数量
  • “number_of_replicas”: 副本数量
分片
  • ES里面的索引可能存储大量数据,这些数据可能会超出单个节点的硬件限制。

  • 为了解决这个问题,ES提供了将索引细分为多个碎片的功能,这就是分片。这里咱们可以简单去理解,在创建索引时,只需要咱们定义所需的碎片数量就可以了,其实每个分片都可以看作是一个完全功能性和独立的索引,可以托管在集群中的任何节点上。

注意

通过分片技术,咱们可以水平拆分数据量,同时它还支持跨碎片(可能在多个节点上)分布和并行操作,从而提高性能/吞吐量;
ES可以完全自动管理分片的分配和文档的聚合来完成搜索请求,并且对用户完全透明;
主分片数在索引创建时指定,后续只能通过Reindex修改,但是较麻烦,一般不进行修改。

副本

为了实现高可用、遇到问题时实现分片的故障转移机制,ElasticSearch允许将索引分片的一个或多个复制成所谓的副本分片。

注意

当分片或者节点发生故障时提供高可用性。因此,需要注意的是,副本分片永远不会分配到复制它的原始或主分片所在的节点上;
可以提高扩展搜索量和吞吐量,因为ES允许在所有副本上并行执行搜索;
默认情况下,ES中的每个索引都分配5个主分片,并为每个主分片分配1个副本分片。主分片在创建索引时指定,不能修改,副本分片可以修改。

索引操作 创建索引

这个时候默认是Dynamic mapping

PUT /colinrs_csdn_blog
{
  "settings": { 
    "number_of_shards": "1", 
    "number_of_replicas": "0"
  } 
}
查看索引
GET /colinrs_csdn_blog
往索引插入数据,指定ID
POST /colinrs_csdn_blog/_doc/
{
  "id":1,
  "name":"colinrs_csdn_blog",
  "page":"https://blog.csdn.net/baidu_32452525",
  "say":"Hello,World" 
}
往索引插入数据,不指定ID
POST /colinrs_csdn_blog/_doc/1
{
  "id":1,
  "name":"colinrs_csdn_blog",
  "page":"https://blog.csdn.net/baidu_32452525",
  "say":"Hello,World" 
}
获取到索引数据
GET /colinrs_csdn_blog/_doc/1
搜索索引数据
GET /colinrs_csdn_blog/_search
按照条件搜索索引数据
POST /colinrs_csdn_blog/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "id": {
        "order": "asc"
      }
    }
  ]
}
全局更新索引数据
PUT  /colinrs_csdn_blog/_doc/1
{
  "id":1,
  "name":"colinrs_csdn_blog_1",
  "page":"https://blog.csdn.net/baidu_32452525",
  "say":"Hello,World" 
}
局部更新索引数据
POST /colinrs_csdn_blog/_update/1 
{

  "doc":{
    "name":"colinrs_csdn_blog_16"
  }
}
删除索引数据
POST /colinrs_csdn_blog/_delete_by_query
{
  "query":{
    "match":{
      "name":"colinrs_csdn_blog"
    }
  }
} 
删除一个索引
DELETE /colinrs_csdn_blog
Mapping

Index 只是类似一个数据库,数据里面还需要字段的定义,这个时候我们就需要使用到 Mapping,Mapping 就是类似数据库字段里面的定义

它有以下几个作用:

  • 定义索引中的字段的名称
  • 定义字段的数据类型,比如字符串、数字、布尔
  • 字段,倒排索引的相关配置,比如设置某个字段为不被索引、记录 position 等
    Mapping

支持的数据类型:见文档:一文搞懂 Elasticsearch 之 Mapping

定义一个Mapping 创建Index 的时候指定 mapping
PUT /my-index-000001
{
  "mappings": {
    "properties": {
      "age":    { "type": "integer" },  
      "email":  { "type": "keyword"  }, 
      "name":   { "type": "text"  }     
    }
  }
}

参考

  • 最清晰易懂的Elasticsearch操作手册|收藏夹必备
转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/280093.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【ElasticSearch 系列:Index】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2