ElasticSearch 学习1

使用场景
  • Github使用Elasticsearch检索1300亿行的代码
    (想不到吧 哈哈哈)
    在这里插入图片描述
  • 使用模糊搜索功能场景的项目
    在这里插入图片描述
    (这也是为什么用ElasticSearch做搜错存储的原因之一,关系数据对模糊搜索做的不够好)

大部分数据库在提取可用知识方面显得异常无能。它们能够通过时间戳或者精确匹配做过滤,但是它们不能够进行全文搜索,处理同义词和根据相关性给文档打分,不能根据同一份数据生成分析和聚合的结果,最重要的 是,它们在没有大量工作进程(线程)的情况下不能做到对数据的实时处理。
然后,ElasticSearch来了,Elasticsearch鼓励你浏览并利用你的数据,而不是让它烂在数据库里,因为在数据库里查询实在是太难了。

What is ElasticSearch

Elasticsearch 是基于Apache Lucene、一个实时的分布式存储、搜索、分析的引擎

关系型数据库中table独立(独立存储),在Elastic Search中,采用index(索引)
Elasticsearch使用Java语言开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful. API 来隐藏Lucene的复杂性,从而让全文搜索变得简单。

它的属性
索引
容器,存储映射类型,字段和其他设置。

type(类型): 文档的逻辑容器,在ES 7.0版本后取消了
取消type理由:

  • 在关系型数据库中table是独立的(独立存储),但es中同一个index中不同type是存储在同一个索引中的(lucene的索引文件),因此不同type中相同名字的字段的定义(mapping)必须一致。
  • 不同类型的“记录”存储在同一个index中,会影响lucene的压缩性能。
  • 一个index只存储一种类型的“记录”

文档:

  • 自我包含,一篇文档同时包含字段和对应的值,也就是同时包含 key:value!
  • 可以是层次型的,一个文档中包含自文档,复杂的逻辑实体就是这么来的! {就是一个json对象! fastjson进行自动转换!}
  • 灵活的结构,文档不依赖预先定义的模式,我们知道关系型数据库中,要提前定义字段才能使用,在elasticsearch中,对于字段是非常灵活的,有时候,我们可以忽略该字段,或者动态的添加一个 新的字段。

fields
字段

ElasticSearch 设计
  1. 物理设计
    分片:ES后台将一个索引划分为多个分片。
  2. 逻辑设计
    查找顺序:索引 -> 类型 -> 文档ID

想要继续学习,请看下节:ElasticSearch 学习2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值