栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

ElasticSearch 学习1

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/680394.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号