Elasticsearch

本文介绍了Elasticsearch,一个基于Lucene的全文搜索引擎,重点讲解了其分布式架构、RESTful接口、节点与集群、索引与文档、类型和属性等基本概念,以及如何进行索引的创建、查看和删除操作。
摘要由CSDN通过智能技术生成

Elasticsearch 入门

1、Elasticsearch 介绍

  • ES是一个使用Java语言并且基于Lucene编写的搜索引擎框架,他提供了分布式的全文搜索功能,提供了一个统一的基于RESTful风格的WEB接口,官方客户端也对多种语言都提供了相应的API。

  • Lucene:Lucene本身就是一个搜索引擎的底层。Lucene 一个搜索引擎框架的底层实现,用起来较为麻烦,es就进行了二次的封装

  • 分布式:ES主要是为了突出他的横向扩展能力。

  • 全文检索:将一段词语进行分词,并且将分出的单个词语统一的放到一个分词库中,在搜索时,根据关键字去分词库中检索,找到匹配的内容。(倒排索引)

  • RESTful风格的WEB接口:操作ES很简单,只需要发送一个HTTP请求,并且根据请求方式的不同,携带参数的同,执行相应的功能。

  • 应用广泛:Github.com,WIKI,Gold Man用ES每天维护将近10TB的数据。

2、 Elasticsearch 相关的基本概念

节点和集群:

Elastic 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个 Elastic 实例。

单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。

索引:

索引:是一种存储数据的逻辑概念,并不是查询速度较快的索引

  • ES的服务中,可以创建多个索引。
  • 每一个索引默认被分成5片存储。
  • 每一个分片都会存在至少一个备份分片。
  • 备份分片默认不会帮助检索数据,当ES检索压力特别大的时候,备份分片才会帮助检索数据。
  • 备份的分片必须放在不同的服务器中。

文档(Document):

  • Index 里面单条的记录称为 Document(文档)。许多条 Document 构成了一个 Index。

  • Document 使用 JSON 格式表示

  • 同一个 Index 里面的 Document,不要求有相同的结构(scheme),但是最好保持相同,这样有利于提高搜索效率。

类型 Type:

  • 一个索引下,可以创建多个类型。

  • 根据版本不同,类型的创建也不同。

属性 Field:

  • 一个文档中,可以包含多个属性。类似于MySQL表中的一行数据存在多个列。

mysql: 数据库====》数据表===========》数据行=========》字段/列

es : 索引======》类型(Type)=》文档(doc)》属性field

3、索引的操作

  • 新建 Index,可以直接向 Elastic 服务器发出 PUT 请求。

    # 创建一个索引
    
    PUT /person
    
    #  "number_of_shards": 5, 当前索引分为5个分片
    #  "number_of_replicas": 1 每隔主分片,对应一个副本
    PUT /person1
    {
      "settings": {
        "number_of_shards": 5,
        "number_of_replicas": 1
      }
    }
    
  • 使用GET查看索引信息

    # 查看索引信息
    GET /person
    
  • 发出 DELETE 请求,删除 Index。

    # 删除索引
    DELETE /person
    
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值