Elasticsearch的基本概念

1、Elasticsearch的概念 

es,是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据,其扩展性很好。es是使用Java开发并使用Lucene作为其核心来实现所有索引和搜索功能,它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而实现简单的全文搜索。

2、Elasticsearch与solr的区别

区别    es    solr
安装方面es基本上是开箱即用(解压即可使用)solr的安装稍微复杂
管理方面es自带分布式协调管理功能  solr需要利用Zookeeper进行分布式管理
数据格式es仅支持json格式数据,但是基本够用 solr支持更多的格式,例如:json、xml、csv等
功能方面es注重于核心功能,高级功能主要依赖于第三方插件solr提的功能更多
性能方面es建立索引快既实时更新快,查询较于solr稍慢 solr查询速度快,当更新索引慢(既插入删除慢)
技术支持es相对开放维护者较少,更新速度快学习成本高 solr较为成熟拥有更为成熟的用户、开发和贡献者社区


3、ELK的概念

ELK时Elasticsearch、Logstash和Kibana三大开源框架的首字母大写,市面上也称为Elastic Stack。
    1. Elasticsearch是一个基于Lucene的分布式、通过Restful风格进行交互的近实时搜索平台框架。
    2. Lgstash是ELK的中央数据流引擎,用于从不同目标(文件/数据库/MQ)收集的不同数据格式,经过过滤后支持输出到不同的目的地(文件/MQ/Redis/elasticsearch/kafka等)。
    3. Kibana可以将ES的数据通过友好的页面展示出来,提供实时数据分析的功能。


4、Elasticsearch的核心概念

1. Elasticsearch与关系型数据库的客观对比
Elasticsearch是面向文档的,以下是关系型数据库与Elasticsearch的客观对比

Relational DB Elasticsearch
数据库(database)索引(Index)
表(table)类型(types)
数据行(rows)文档(documents)
数据列(columns)字段(fields)


2. Elasticsearch的相关设计
Elasticsearch(集群)中可以包括多个索引(数据库),每个索引可以包含多个类型(表),每个类型可以包含多个文档(行),每个文档可以包含多个字段(列)

1.物理设计:
    Elasticsearch在后台把每个索引划分为多个分片,每个分片可以在集群中的不同服务器减迁移。(注意:Elasticsearch单机部署也是一个集群,其默认集群名称为elasticsearch。)
    
2.逻辑设计:
    一个索引类型中可以包含多个文档,所以可以通过一系列顺序找到对应的文档信息,例如:索引 -> 类型 -> 文档ID,通过这个组合我们能够找到某个具体的文档。(注意:这里的文档ID不一定为整数,大部分情况这个ID是一个字符串。)
1.物理设计:
    Elasticsearch在后台把每个索引划分为多个分片,每个分片可以在集群中的不同服务器减迁移。(注意:Elasticsearch单机部署也是一个集群,其默认集群名称为elasticsearch。)
    
2.逻辑设计:
    一个索引类型中可以包含多个文档,所以可以通过一系列顺序找到对应的文档信息,例如:索引 -> 类型 -> 文档ID,通过这个组合我们能够找到某个具体的文档。(注意:这里的文档ID不一定为整数,大部分情况这个ID是一个字符串。)

Elasticsearch中相关关键字的描述

1.文档
    Elasticsearch是面向文档的,那么就意味着索引和搜索的最小单位就是文档,其中文档有以下几个重要的属性:
        - 自我包含,一篇文档同时包含字段和对应的值,也就是同时包含key:value
        - 可以是层次型的,一个文档中包含自文档,复杂的逻辑实体就是这么来的
        -灵活的结构,文档不依赖于西安设定的模式,在Elasticsearch中。对于字段是非常灵活的,不用像关系型数据库那样需要提前定义字段才能使用
        
2.类型
    类型是文档的逻辑容器,就像关系型数据库一样,表格是航的容器。类型中对字段的定义称为映射。类型在最新的Elasticsearch中已经不是那么重要。
    
3.索引
    索引是映射类型的容器,Elasticsearch中的索引是一个非常大的文档集合。索引存储了映射类型的字段和其他设置,然后它们呗存储到各个分片上。
节点和分片的工作方式

    一个集群至少有一个节点,而一个节点就是一个elasticsearch进程,节点可以有多个索引默认的,如果创建索引那么索引将会有5个分片(primary shard,又称主分片)构成,每个主分片会有一个副本(replica shard,又称复制分片)。


倒排索引

    elasticsearch使用的是一种称为倒排索引的结构,采用Lucene倒排索引作为底层,这种结构适用于快速的全文搜索,一个索引有文档中所有不重复的列表构成,对于每一个词都有一个包含它的文档列表。elasticsearch的索引是有多个Lucene索引组成。
    
    倒排索引建立的是分词(Term)和文档(Document)之间的映射关系,在倒排索引中,数据是面向词(Term)而不是面向文档的。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值