首页 > 其他 > 详细

ES简单介绍

时间:2020-03-24 23:35:31      阅读:149      评论:0      收藏:0      [点我收藏+]

一、什么是ElasticSearch

  ElasticSearch是一个基于Lucene的高扩展的分布式搜索服务器,支持开箱即用。ElasticSearch隐藏了Lucene的复杂性,对外提供Restful 接口来操作索引、搜索。核心思想就是在多台机器上启动多个 es 进程实例,组成了一个 es 集群。
  优点:扩展性好,可部署上百台服务器集群近实时地去索引数据,搜索数据。
 
二、ES快速入门
  ES在项目中的应用方式:用户在前端搜索关键字,项目前端通过HTTP方式请求项目服务端,项目服务端通过Http RESTful方式请求ES集群进行搜索,ES集群从索引库检索数据。
技术分享图片

 

步骤一:创建索引库(可使用postman或head插件创建,本案例使用postman)

  【相关概念】

  ES的索引库是个逻辑概念,它包括了分词列表及文档列表,同个索引库中存储了相同类型的文档。它就相当于MySQL中的表,或相当于Mongodb中的集合。
  关于索引这个语:
    索引(名词):ES是基于Lucene构建的个搜索服务,它要从索引库搜索符合条件索引数据。
    索引(动词):索引库刚创建起来是空的,将数据添加到索引库的过程称为索引。 
  【操作】put http://localhost:9200/索引库名称 
  
{ 
    "settings":{
         "index":{
             "number_of_shards":1, //分片数,即将索引库分成多片存储在不同节点,提高可用性
             "number_of_replicas":0 //副本数量,提高可靠性
          } 
    } 
}                        

 

  
步骤二:创建映射
  【相关概念】
  在索引中每个文档都包括了个或多个field创建映射就是向索引库中创建field的过程,下边是documentfield与关系数据库的概念的类比:
  文档(Document----------------Row记录
  字段(Field-------------------Columns
注意:6.0之前的版本有type(类型)概念,type相当于关系数据库的表,ES官方将在ES9.0版本中彻底删除type
  上边讲的创建索引库相当于关系数据库中的数据库还是表?
  1、如果相当于数据库就表示个索引库可以创建很多不同类型的文档,这在ES中也是允许的。
  2、如果相当于表就表示个索引库只能存储相同类型的文档,ES官方建议 在个索引库中只存储相同类型的文
  【操作】发送 post 请求:http://localhost:9200/xc_course/doc/_mapping
{ 
"properties": { "name": { "type": "text" //由于ES6.0版本还没有将type彻底删除,所以暂时把type个没有特殊意义的名字。
  },
"description": { "type": "text"
  },
"studymodel": { "type": "keyword"   } } }

 

技术分享图片

 

 

步骤三:创建文档——相当于MySQL数据库表中的记录
  【操作】发送:put Post http://localhost:9200/xc_course/doc/id值 (http://localhost:9200/xc_course/doc/4028e58161bcf7f40161bcf8b77c0000
{ 
    "name":"Bootstrap开发框架", 
    "description":"Bootstrap是由Twitter推出的一个前台页面开发框架,在行业之中使用较为广泛。此开发框架包 含了大量的CSS、JS程序代码,可以帮助开发者(尤其是不擅长页面开发的程序人员)轻松的实现一个不受浏览器限制的 精美界面效果。", 
    "studymodel":"201001" 
}

技术分享图片

步骤四:搜索文档
【操作】
  单一查找:发送:get http://localhost:9200/xc_course/doc/4028e58161bcf7f40161bcf8b77c0000
  查找所有:get http://localhost:9200/xc_course/doc/_search 
  对应查找:get http://localhost:9200/xc_course/doc/_search?q=name:bootstrap 
          get http://localhost:9200/xc_course/doc/_search?q=studymodel:201001 
 
 
三、集群管理
1结点:ES集群由多个服务器组成,每个服务器即为Node结点(该服务只部署了ES进程)
2分片:当我们的文档量很大时,由于内存和硬盘的限制,同时也为了提高ES的处理能力、容错能力及高可用能力,我们将索引分成若干分片,每个分片可以放在不同的服务器,这样就实现了多个服务器共同对外提供索引及搜索服务。个搜索请求过来,会分别从各各分片去查询,最后将查询到的数据合并返回给用户。
3副本:为了提高ES的高可用同时也为了提高搜索的吞吐量,我们将分片复制份或多份存储在其它的服务器,这样即使当前的服务器挂掉了,拥有副本的服务器照常可以提供服务。
4主结点:个集群中会有个或多个主结点,主结点的作用是集群管理,比如增加节点,移除节点等,主结点挂掉后ES会重新选个主结点。
5结点转发:每个结点都知道其它结点的信息,我们可以对任意个结点发起请求,接收请求的结点会转发给其它结点查询数据。
 
 
 
 
 
 
 
 

技术分享图片

 

ES简单介绍

原文:https://www.cnblogs.com/qmillet/p/12563061.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!