赞
踩
elasticsearch简写es,es是一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据。
是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。
你用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。
可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。
Kibana使得理解大量数据变得很容易。它简单的、基于浏览器的界面使你能够快速创建和共享动态仪表板,实时显示Elasticsearch查询的变化。
其他版本下载地址:https://www.elastic.co/cn/downloads/past-releases
最新版本下载地址:https://www.elastic.co/cn/elastic-stack/
注意ES版本 和 Kibana版本 一致
ElasticSearch 默认采用的分词器, 是单个字分词 ,效果很差 ,所以我们需要安装一个更实用的分词器,这里采用 IK分词器
jar包下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
源码下载地址:https://github.com/medcl/elasticsearch-analysis-ik/tree
(版本对应es)
在官网中下载自己需要的版本(笔者安装的是7.13.2版本)
解压下来,在解压下来在bin文件中双击elasticsearch.bat
启动成功后访问localhost:9200
表示安装成功
Elasticsearch-head-master安装和启动:https://blog.csdn.net/rgh520219/article/details/105256799/
解压安装即可 ,点击index.html`
下载完成后解压即可
打开ES的安装目录,然后打开 plugins 目录,建立一个文件夹ik(名字自定义)
可以在config包下的config\IKAnalyzer.cfg.xml中设置自己的字典
创建文件a.dic
在IKAnalyzer.cfg.xml
中
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">a.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
下载好之后解压:会有一个 kibana-版本号-系统-位的文件夹
内部文件目录:
kibana配置:https://www.elastic.co/guide/cn/kibana/current/settings.html
进行中文化配置
在**kibana-7.13.2-windows-x86_64\config
**中配置 i18n.locale: "zh-CN"
点击bin文件夹下的kibana.bat
运行
访问localhost:5601
(需要开启kibana)
安装成功
在接下来位置我们进行使用(当然我们也可以使用postman
开发工具):
向下滑动滚轮
es | mysql |
---|---|
字段 | 列 |
文档 | 一行数据 |
类型(已废弃) | 表 |
索引 | 数据库 |
下面解释概念:
8.1.1文档(Document):
8.1.2 类型(Type):
类型就相当于MySql里的表,我们知道MySql里一个库下可以有很多表,最原始的时候ES也是这样,一个索引下可以有很多类型,但是从6.0版本开始,type已经被逐渐废弃,但是这时候一个索引仍然可以设置多个类型,一直到7.0版本开始,一个索引就只能创建一个类型了(_doc)。
8.1.3 索引(Index):
8.1.4 节点(node):
一个节点就是一个ES实例,其实本质上就是一个java进程;
节点的名称可以通过配置文件配置,或者在启动的时候使用-E node.name=ropledata
指定,默认是随机分配的。建议咱们自己指定,因为节点名称对于管理目的很重要,咱们可以通过节点名称确定网络中的哪些服务器对应于ES集群中的哪些节点;
ES的节点类型主要分为如下几种:
1. Master Eligible节点: 每个节点启动后,默认就是Master Eligible节点,可以通过设置node.master: false
来禁止。
Master Eligible可以参加选主流程,并成为Master节点(当第一个节点启动后,它会将自己选为Master节点);注意:每个节点都保存了集群的状态,只有Master节点才能修改集群的状态信息。
2.Data节点: 可以保存数据的节点。主要负责保存分片数据,利于数据扩展。
3.Coordinating 节点: 负责接收客户端请求,将请求发送到合适的节点,最终把结果汇集到一起。
注意:每个节点默认都起到了Coordinating node的职责。一般在开发环境中一个节点可以承担多个角色,但是在生产环境中,还是设置单一的角色比较好,因为有助于提高性能。
8.1.5 分片(shard):
了解分布式或者学过mysql分库分表的应该对分片的概念比较熟悉,ES里面的索引可能存储大量数据,这些数据可能会超出单个节点的硬件限制。
为了解决这个问题,ES提供了将索引细分为多个碎片的功能,这就是分片。 这里咱们可以简单去理解,在创建索引时,只需要咱们定义所需的碎片数量就可以了,其实每个分片都可以看作是一个完全功能性和独立的索引,可以托管在集群中的任何节点上。
分片有什么好处和注意事项呢?
1.通过分片技术,咱们可以水平拆分数据量,同时它还支持跨碎片(可能在多个节点上)分布和并行操作,从而提高性能/吞吐量;
2.ES可以完全自动管理分片的分配和文档的聚合来完成搜索请求,并且对用户完全透明;
3.主分片数在索引创建时指定,后续只能通过Reindex修改,但是较麻烦,一般不进行修改。
8.1.6 副本分片(replica shard):
熟悉分布式的朋友应该对副本对概念不陌生,为了实现高可用、遇到问题时实现分片的故障转移机制,ElasticSearch允许将索引分片的一个或多个复制成所谓的副本分片。
副本分片有什么作用和注意事项呢?
1.当分片或者节点发生故障时提供高可用性。因此,需要注意的是,副本分片永远不会分配到复制它的原始或主分片所在的节点上;
2.可以提高扩展搜索量和吞吐量,因为ES允许在所有副本上并行执行搜索;
3.默认情况下,ES中的每个索引都分配5个主分片,并为每个主分片分配1个副本分片。主分片在创建索引时指定,不能修改,副本分片可以修改。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。