zoukankan      html  css  js  c++  java
  • 【ElasticSearch框架学习】专栏总集篇

    youzgLogo

    基本知识点:

    图标:

    logo


    定义:

    简称为es
    es是一个开源高扩展分布式全文检索引擎,它可以近乎实时的存储检索数据
    本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据
    es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,
    但是,它的目的是通过简单的 RESTful APl 来隐藏 Lucene的复杂性,从而让全文搜索变得简单
    据国际权威的数据库产品评测机构DBEngines的统计,在2016年1月,Elasticsearch已超过Solr等,成为排名第一的搜索引擎类应用


    那么,什么又是 Lucene 呢?

    扩展 —— Lucene 简介:

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,
    是一个 开源全文检索引擎工具包
    但它不是一个 完整的全文检索引擎,而是一个 全文检索引擎的架构
    提供了完整的 查询引擎索引引擎部分文本分析引擎(英文与德文两种西方语言)
    Lucene的目的是为软件开发人员提供一个简单易用的 工具包
    以方便的在 目标系统 中实现 全文检索 的功能,或者是以此为基础建立起 完整的全文检索引擎


    有关ES,还流传着一段诙谐的故事:

    传言:

    多年前,一个叫做Shay Banon的刚结婚不久的失业开发者,
    由于妻子要去伦敦学习厨师,他便跟着也去了。
    在他找工作的过程中,为了给妻子构建一个食谱的搜索引擎,他开始构建一个早期版本的Lucene.


    直接基于Lucene工作会比较困难,所以Shay开始抽象Lucene代码以便va程序员可以在应用中添加搜索功能。
    他发布了他的第一个开源项目,叫做"Compass"。
    后来Shay找到一份工作,这份工作处在高性能和内存数据网格的分布式环境中,
    因此高性能的、实时的、分布式的搜索引擎也是理所当然需要的。
    然后他决定重写Compass库使其成为一个独立的服务叫做Elasticsearch。
    第一个公开版本出现在2010年2月,在那之后Elasticsearch已经成为Github上最受欢迎的项目之一,代码贡献者超过300人。
    一家主营Elasticsearch的公司就此成立,他们一边提供商业支持一边开发新功能,不过Elasticsearch将永远开源且对所有人可用。


    但是,Shay的妻子依旧等待着她的食谱搜索…


    但是,在如今的工作岗位要求中,我们经常能看到一个 和ElasticSearch齐名搜索引擎 —— Solr

    ES 和 Solr:

    请观看本人博文 —— 《【ElasticSearch框架学习】ES与Solr 浅析》

    那么,基本的介绍 以及 与Solr的区别和联系 就讲解完了


    在当代,只要谈及 ES,就会有个名词 被顺带着 讲解到 —— ELK

    ELK 概述:

    概念:

    ELKElasticsearch、Logstash、Kibana 三大开源架构 的 首字母大写简称
    市面上也被成为Elastic Stack,其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架,
    像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用Elasticsearch作为底层支持框架,
    可见Elasticsearch提供的搜索能力确实强大,
    市面上很多时候我们简称Elasticsearch为es
    Logstash 是 ELK 的 中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,
    经过过滤后支持输出到不同目的地(文件MO/edis/elastsearchak等),
    Kibana 可以将elasticsearch的数据通过友好的页面展示出来,提供实时分析的功能
    市面上很多开发只要提到ELK能够一致说出它是一个 日志分析架构技术栈 总称,
    但实际上,ELK不仅仅适用于 日志分析,它还可以支持其它任何数据分析和收集的场景,日志分析和收集只是更具有代表性并非唯一性


    下面,本人通过一张图,来展示下 ELK的分工流程

    分工流程:

    安装


    那么,为了进行后面的讲解内容,
    本人先来讲解下 ELK 中的 ElasticSearch安装

    ElasticSearch 安装:

    请观看本人博文 —— 《【ElasticSearch框架学习】ElasticSearch安装 详解》


    Kibanna 安装:

    请观看本人博文 —— 《【ElasticSearch框架学习】Kibana安装 详解》


    IK分词器:

    请观看本人博文 —— 《【ElasticSearch框架学习】IK分词器 详解》


    在上文的学习中,同学们应该大致了解了 ES服务的安装与启动 以及 ES的定义和各种相关知识点

    那么,下面本人就来讲解下 ES的核心概念

    核心概念:

    请观看本人博文 —— 《【ElasticSearch框架学习】核心概念 详解》


    为了下文中 ES的基本语法 的讲解,本人来介绍下 当前版本 ES中的 字段类型

    字段类型:

    常见数据类型:

    类型 描述
    binary 二进制值编码为Base64字符串
    boolean true和false取值
    Keywords 关键字家庭
    其中包括keyword,constant_keyword,和wildcard
    Numbers 数值类型
    例如:long和double,用于表示 数量
    Datas 日期类型,包括datedate_nanos
    alias 为现有字段定义别名

    对象关系类型:

    类型 描述
    object JSON对象
    flattened 整个JSON对象作为单个字段值
    nested 保留其子字段之间关系的JSON对象
    join 为同一索引中的文档定义父/子关系

    数组:

    在Elasticsearch中,数组 不需要 专用的字段数据类型
    默认情况下,任何字段 都可以包含 零个多个 值
    但是,数组中的所有值 都必须 具有 相同的字段类型


    其它类型:

    更多数据类型,请访问下方链接:

    https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html


    那么,了解完 字段类型 之后,本人就来讲解下 ES的基本语法 —— Restful命令
    (注意:并不是说只能用 Restful命令Restful命令是当前最流行的一种ES语法)

    Restful命令:

    请观看本人博文 —— 《【ElasticSearch框架学习】Restful命令 详解》


    在我们之前使用 数据库 进行 查询 的过程中,
    几乎所有的查询都是 需要条件

    因此,在我们使用ES进行查询的时候,业务也几乎都是需要 条件查询
    那么,现在,本人就来讲解下如何使用 ES 进行 条件查询

    条件查询:

    请观看本人博文 —— 《【ElasticSearch框架学习】条件查询 详解》


    SpringBoot 集成 ES:

    请观看本人博文 —— 《【ElasticSearch框架学习】SpringBoot 集成 ElasticSearch》


    官方文档:

    若同学们还对于elasticsearch框架的基本知识点抱有疑问,请访问下面的官方文档链接:

    elasticsearch的 官方文档
    https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

  • 相关阅读:
    常用基础命令
    Vim
    Linux目录结构
    稀疏数组
    数据结构概述
    天天用的命令
    Mysql和redis的安装
    回文排列
    URL化
    在word中做复选框打对勾钩
  • 原文地址:https://www.cnblogs.com/codderYouzg/p/13765787.html
Copyright © 2011-2022 走看看