目录标题
- 一、Elasticsearch介绍
- 二、Elasticsearch下载
- 三、Elasticsearch-head
- 四、Elasticsearch-kibana
一、Elasticsearch介绍
Elasticsearch是什么?
Elasticsearch 是一个基于Lucene的分布式搜索和分析引擎,ES是elaticsearch简写,Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。Elasticsearch是用Java开发,在Apache许可条款下开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。2013年初,GitHub抛弃了Solr,采取ElasticSearch 来做PB级的搜索。 “GitHub使用ElasticSearch搜索20TB的数据,包括13亿文件和1300亿行代码”。除了GitHub还有抖音、淘宝、百度
Elasticsearch核心概念
Cluster:集群 ES可以作为一个独立的单个搜索服务器。不过为了处理大型数据集,实现容错和高可用性,ES可以运行在许多互相合作的服务器上。这些服务器的集合称为集群(多台es机器,组成一个集群)Node: 节点 形成集群的每个服务器称为节点。Shard:分片 当有大量的文档时,由于内存的限制、磁盘处理能力不足、无法足够快的响应客户端的请求等,一个节点可能不够。这种情况下数据可以分为较小的分片。每个分片放到不同的服务器上。当你查询的索引分布在多个分片上时,ES会把查询发送给每个相关的分片,并将结果组合在一起,而应用程序并不知道分片的存在。即:这个过程对用户来说是透明的Replia:副本 为提高查询吞吐量或实现高可用性,可以使用分片副本。副本是一个分片的精确复制,每个分片可以有零个或多个副本。ES中可以有许多相同的分片,其中之一被选择更改索引操作,这种特殊的分片称为主分片。当主分片丢失时,如:该分片所在的数据不可用时,集群将副本提升为新的主分片。全文检索 全文检索就是对一篇文章进行索引,可以根据关键字搜索,类似于mysql里的like语句全文索引就是把内容根据词的意义进行分词然后分别创建索引,例如”今日是周日我们出去玩” 可能会被分词成:“今天“,”周日“,“我们“,”出去玩“ 等token,这样当你搜索“周日”或者 “出去玩” 都会把这句搜出来
Elasticsearch & Mysql的比较
Es | Mysql |
---|---|
数据库 | 索引 index |
表 | 类型 type |
一条条记录 | 文档 document |
字段 | 字段 field[string,int] |
建表语句 | 映射 mapping |
索引 | 一切皆索引 |
查询语句 | Get请求 |
插入语句 | Post请求 |
Elasticsearch索引到底能处理多大数据?
单一索引的极限取决于存储索引的硬件、索引的设计、如何处理数据以及你为索引备份了多少副本。通常来说,一个Lucene索引(也就是一个elasticsearch分片,一个es索引默认5个分片,可以设置更多)不能处理多于21亿篇文档,或者多于2740亿的唯一词条但达到这个极限之前,我们可能就没有足够的磁盘空间了!当然,一个分片如何很大的话,读写性能将会变得非常差理论下,es可以无限存储,只要机器和硬盘够大。
二、Elasticsearch下载
官网下载最新版本 https://www.elastic.co/cn/downloads/elasticsearch下载完毕解压安装包,找到bin文件夹里面的Elasticsearch.bat运行即可高版本下载完运行之后会自动生成密码注意观察,低版本不需要输入账户密码 访问http://127.0.0.1:9200/端口即可知晓运行成功 如下代码
{"name" : "WORK","cluster_name" : "elasticsearch","cluster_uuid" : "tXedW_LrR8OOPTfQ21xKMQ","version" : {"number" : "7.5.0","build_flavor" : "default","build_type" : "zip","build_hash" : "e9ccaed468e2fac2275a3761849cbee64b39519f","build_date" : "2019-11-26T01:06:52.518245Z","build_snapshot" : false,"lucene_version" : "8.3.0","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"}
三、Elasticsearch-head
elasticsearch-head是elasticsearch的一款可视化工具,依赖于node.js ,所以需要先安装node.jsgithub下载地址 https://github.com/mobz/elasticsearch-head 下载zip文件解压每个文件夹都得打开完全控制的权限需要Node.js的环境 node.js下载地址 https://nodejs.org/ennpm install 安装环境依赖npm run start 启动head第一次运行集群健康值颜色区分:绿色:最健康的状态,代表所有的分片包括备份都可用黄色:基本的分片可用,但是备份不可用(也可能是没有备份)红色:部分的分片可用,表明分片有一部分损坏。此时执行查询部分数据仍然可以查到,遇到这种情况,还是赶快解决比较好灰色:未连接到elasticsearch服务灰色解决跨域问题打开elasticsearch.yml文件添加配置 重启即可# 开启跨域支持http.cors.enabled: true# 允许所有人跨域访问http.cors.allow-origin: "*"
四、Elasticsearch-kibana
Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现下载地址 : https://www.elastic.co/cn/downloads/past-releases#kibana下载完成解压 配置配置文件 yml文件server.port: 5601server.host: "127.0.0.1"server.name: "Like"elasticsearch.hosts: ["http://localhost:9200/"]浏览器访问 http://localhost:5601 即可 会自动创建两个节点 1个索引=一个数据库Elasticsearch-head用于查询节点 Elasticsearch-kibana用于查询查询数据