Elasticsearch 是一个可用于分布式以及符合RESTful 风格的搜索和数据分析引擎。—— Elastic Stack 官网

关于Elasticsearch的“爱恨情仇"

  •   或许提起搜索服务器,大部分人都会想起Solr 和 Elasticsearch 甚至以及国产大厂自研等。随着人工智能和大数据时代的到来,甚至还带动了一系列的机器引擎的出现,譬如Splunk等。其中Solr 和 Elasticsearch是基于Lucene的搜索服务器。一般Solr是面向的是全文检索引擎,而Elasticsearch是用于全文搜索、结构化搜索、分析。而对于Splunk机器数据的引擎,可收集、索引和利用所有应用程序、服务器和设备生成的快速移动型计算机数据。可是不论技术如何发展和更替,作为一位程序员,我们要做的不就是即时地维护技术储备知识库和实时更新自己的技术缓存,以及实现可扩展性的技术深度树的增长。
  •  关于Elasticsearch,记得当时接触到Elasticsearch的名词的时候,那是2017年的夏天。当时的工作任务是实现一个关于知识库的系统。当时小伙伴们技术选型主要还是偏向Solr+Lucene来的做,有的甚至说直接使用Mysql数据库的自带函数来做。我是在无意中,在网上查询搜索引擎的技术实战的时候,看见了一篇对于Elasticsearch应用实战的应用报告分析,才去查询了Elasticsearch的相关资料。不过,当时网上大部分对于搜索功能的Demo,大部分还是关于Solr 的比较多。也许在那个时候,大部分的技术概念基本都是偏向于技术长期稳定和文档资料全,使用程度相对较重的因素。但是,我个人却留了一个心眼,自己尝试去实战Elasticsearch。
  •   	第一次,动手实操还是在Windows本机上安装(22G内存)的。其中,安装过程相比利用Tomcat+Solr来说,相对较复杂,而且对于本机的内存和功耗占用较重。个开发基本只能说是能运行起来,可稳定性方面,就有点显得望而却步的感觉。第二次,动手实战是在本机搭建了一个虚拟机去实战(2核8G),可在网络通信方面,当时选的是网络桥接方式,也让我对此觉得很是麻烦。第三次,是自己拥有了自己的阿里云服务器,在上面按照传统部署方式(相对于Docker部署来说),可无奈个人服务器内存较低(2核4G),修改配置JVM等无法启动成功,总是抛出GC日志什么的问题,主要还是当时囊中羞涩的问题,甚至一旦运行Elasticsearch服务,其它的应用便无法启动和 运行。后来,接触了Docker,于是,有了第四次的Elasticsearch实战(单节点部署)。第四次,升级了阿里云服务器的配置(2核8G),最终实现了额自己的第一个Elasticsearch服务。甚至,为在后来工作中,动手实战Elasticsearch分布式集群服务奠定基础。

基本概述

  • 似乎从某种意义来说Elasticsearch和MongoDB/Redis/Memcache一样,是一种Nosql数据库。是一个接近实时的搜索平台,从索引这个文档到这个文档能够被搜索到只有一个轻微的延迟,企业应用定位:采用Restful API标准的可扩展和高可用的实时数据分析的全文搜索工具。不过在当时,Elastic Stack只有Elasticsearch、Kibana 和 Logstash用例,还没有包含Beats等。而且在应用方面,除了来当作ELK分布式日志系统搭建外,更多的是Elasticsearch +Elasticsearch-Head插件在满足业务场景方面的需求,能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化等。
  • 基本特点:
  1. 可拓展:支持一主多从且扩容简易,只要cluster.name一致且在同一个网络中就能自动加入当前集群;本身就是开源软件,也支持很多开源的第三方插件
  2. 高可用:在一个集群的多个节点中进行分布式存储,索引支持shards和复制,即使部分节点down掉,也能自动进行数据恢复和主从切换
  3. 采用RestfulAPI标准:通过http接口使用JSON格式进行操作数据
  4. 数据存储的最小单位是文档,本质上是一个JSON 文本

Elasticsearch关键词

  • Node : 节点,单个装有Elasticsearch服务并且提供故障转移和实现可扩展的服务器
  • Cluster : 集群,一个Elasticsearch-Cluster集群是有一个Node或者至少2个Node组成的服务器,共同服务和分享Node节点数据的具有负载均衡的功能,甚至基于Zookeeper集群的高可用服务等。
  • Index : 索引,具有相同或者相似特征的Document文档对象的集合
  • Type : 类型,相同Filed字段的文档定义一个Type类型,一个Type可以创建多个Index索引
  • Document :文档,一个Document文档可以被用作Index索引的基础信息单元
  • Field : 字段列,Field是Elasticsearch的最小单元,相挡当于数据的某一列
  • Shards :分片,Elasticsearch把Index索引分成若干份,每一个部分就是一个Shard分片
  • Replicas : 复制,每个Inex索引里每个Shard分片的拷贝或者说是数据备份

Elasticsearch 结构与其它数据库对比

databaseType databaseName database databaseTable databaseRow databaseColumn
sql Mysql 数据库-database 表-table 数据行-row 数据列-column
Nosql Elasticsearch 索引-index 类型-type 文档-document 字段列-field

版权声明:本文为博主原创文章,遵循相关版权协议,如若转载或者分享请附上原文出处链接和链接来源。

Elasticsearch数据库 | Elasticsearch-7.5.0应用基础实战的更多相关文章

  1. Elasticsearch数据库 | Elasticsearch-7.5.0应用搭建实战

    Elasticsearch 是一个可用于分布式以及符合RESTful 风格的搜索和数据分析引擎.-- Elastic Stack 官网 搭建Elasticsearch的"那些事儿" ...

  2. Elasticsearch通关教程(一): 基础入门

    简介 Elasticsearch是一个高度可扩展的.开源的.基于 Lucene 的全文搜索和分析引擎.它允许您快速,近实时地存储,搜索和分析大量数据,并支持多租户. Elasticsearch也使用J ...

  3. elasticSearch数据库、skywalking集群部署

    Centos6上面安装elasticsearc数据库的集群 安装的是6.3.2版本,安装之前首先要先安装jdk1.8版本 安装之前首先需要关闭防火墙 Centos6 sudo service ipta ...

  4. [转帖]Elasticsearch数据库

    Elasticsearch数据库 2018-05-06 11:30:48 七色米 阅读数 23634更多 分类专栏: 数据库   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转 ...

  5. Elasticsearch数据库优化实战:让你的ES飞起来

    摘要:ES已经成为了全能型的数据产品,在很多领域越来越受欢迎,本文旨在从数据库领域分析ES的使用. 本文分享自华为云社区<Elasticsearch数据库加速实践>,原文作者:css_bl ...

  6. ElasticSearch和ElasticSearch Head环境搭建和数据模拟

    首先elasticsearch-6.0.0\bin目录下运行elasticsearch服务 修改elasticsearch-6.0.0\elasticsearch.yml文件 在文件最后加入下面代码, ...

  7. Elasticsearch系列---Elasticsearch的基本概念及工作原理

    基本概念 Elasticsearch有几个核心的概念,花几分钟时间了解一下,有助于后面章节的学习. NRT Near Realtime,近实时,有两个层面的含义,一是从写入一条数据到这条数据可以被搜索 ...

  8. ElasticSearch 全文检索— ElasticSearch 安装部署

    ElasticSearch 规划-集群规划 ElasticSearch 规划-集群规划 ElasticSearch 规划-用户规划 ElasticSearch 规划-目录规划 ElasticSearc ...

  9. ElasticSearch 全文检索— ElasticSearch概述

    ElasticSearch 产生背景 1.海量数据组合条件查询 2.毫秒级或者秒级返回数据 Lucene 定义 lucene是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一 ...

随机推荐

  1. Java多线程_阻塞队列

    1.什么是阻塞队列       我们知道,PriorityQueue.LinkedList这些都是非阻塞队列.在我们使用非阻塞队列的时候有一个很大问题,它不会对当前线程产生阻塞,那么在面对类似消费者- ...

  2. neighbor和neigh_modify(转载)

    (转载:http://blog.sina.com.cn/s/blog_b48a7ac30102w4mg.html###) 以下取自:http://simulation.haotui.com/viewt ...

  3. Unity坐标系详解

    1. World Space(世界坐标系): 我们在场景中添加的物体(如:Cube),他们都是以世界坐标显示在场景中.transform.position 获取的便是这个 坐标数值. 2. Scene ...

  4. 【HttpRunner v3.x】笔记 ——4. 测试用例-结构解析

    一.官方首推pytest格式 上篇文章我们知道了,httprunner可以支持三种格式的用例,分别是pytest.yaml和json.yaml和json是以前的版本所使用的用例格式,但是在3.x版本上 ...

  5. nginx server_name 多个

    nginx server_name 多个 nginx server_name 多个的话,空格隔开就行 server_name baidu.com baidu.me; 如果很多的话可以用正则,我的需求, ...

  6. 外包公司派遣到网易,上班地点网易大厦,转正后工资8k-10k,13薪,包三餐,值得去吗?

    作为一个人,我们必须时时刻刻清醒地看待自己,做到不卑不亢才能坚强地活下去. 请肆无忌惮地点赞吧,微信搜索[沉默王二]关注这个在九朝古都洛阳苟且偷生的程序员.本文 GitHub github.com/i ...

  7. Cocos Creator 性能优化:DrawCall

    前言 在游戏开发中,DrawCall 作为一个非常重要的性能指标,直接影响游戏的整体性能表现. 无论是 Cocos Creator.Unity.Unreal 还是其他游戏引擎,只要说到游戏性能优化,D ...

  8. 索引对单表查询的影响(Cost和consistent gets)

    前提:使用system账户登录sql plus. 建表: SQL> create table t2 as select * from dba_objects; 表已创建. 已用时间: 00: 0 ...

  9. pwnable.kr之input

    连接到远程服务器:ssh input2@pwnable.kr -p2222 查看题目所给的代码,根据题目的要求我们要给出所有符合条件的输入才能拿到flag,本来想在输入上动点歪脑筋,结果输入有字节数的 ...

  10. 最全 IT 相关网站,软件开发网站收集

    前端比较流行的 UI 框架 目前前端用的比较多的框架有如下几个 Ant Design:Ant Design - 一套企业级 UI 设计语言和 React 组件库  Mint UI:https://mi ...