9.Elasticsearch基本概念

9.1 基本概念

  • 近实时性(Near Realtime[NRT])
  • 集群(Cluster)
    • 每个集群有一个唯一的名称标识,默认是“elasticsearch”。
  • 节点(Node)
    • 在一个集群中,你想启动多少节点就可以启动多少节点。
  • 索引(Index)
    • 一个索引就是含有某些相似特性的文档的集合。一个索引被一个名称(必须都是小写)唯一标识,并且这个名称被用于索引通过文档去执行索引,搜索,更新和删除操作
  • 类型(Type)
    • 一个类型是你的索引中的一个分类或者说是一个分区,它可以让你在同一索引中存储不同类型的文档
  • 文档(Document)
    • 一个文档是一个可被索引的数据的基础单元
    • 这个文档用JSON格式表现,JSON是一种普遍的网络数据交换格式
    • 在一个索引或类型中,可以根据自己的需求存储任意多的文档
  • 分片 (Shards)
    • 当创建一个索引的时候,可以简单的定义想要的分片的数量
      • 每个分片本身是一个全功能的完全独立的“索引”,它可以部署在集群中的任何节点上。
    • 分片允许水平切分你的内容卷
      • 分片允许你通过分片来分布和并行化执行操作来应对日益增长的执行量。
  • 复制(Replicas)
    • Elasticsearch允许你制作分片的一个或多个拷贝放入一个叫做复制分片或短暂复制品中
    • 复制对于以下两个主要原因:
      • 高可用
      • 高并发

9.2 Java API

  • 节点客户端(node client):
    • 节点客户端以无数据节点(none data node)身份加入集群。
  • 传输客户端(Transport client):
    • 这个更轻量的传输客户端能够发送请求到远程集群。它自己不加入集群,只是简单转发请求给集群中的节点。
    • 两个Java客户端都通过9300端口与集群交互,使用Elasticsearch传输协议(Elasticsearch Transport Protocol)。

9.3 RESTful API

  • 其他所有程序语言都可以使用RESTful API,通过9200端口的与Elasticsearch进行通信。
  • 向Elasticsearch发出的请求的组成部分与其它普通的HTTP请求是一样的:
    • curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>’
      • VERB HTTP方法: GET , POST , PUT , HEAD , DELETE
      • PROTOCOL http或者https协议

9.3.1 RESTful API示例

  • 举例说明,为了计算集群中的文档数量,我们可以这样做:
curl -XGET 'http://localhost:9200/_count?pretty' -d '
{
"query": {
"match_all": {}
}
}
‘
  • Elasticsearch返回一个类似 200 OK 的HTTP状态码和JSON格式的响应主体(除了HEAD 求)

9.4 ElasticSearch的核心概念

9.5 ElasticSearch与数据库的类比

9.6 ElasticSearch 存入数据和搜索数据机制

大数据视频推荐:
腾讯课堂
CSDN
ELK入门精讲
AIOps智能运维实战
ELK7 stack开发运维
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容