ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口

Elasticsearch由java开发,所以在搭建时,需先安装java JDK

几个基本概念

  • 索引(Index)

一个索引就是含有相似结构或性质特性的文档的集合,例如用户信息数据可以作为一个索引,文章信息也可应作为另一个索引。

  • 文档(Document)

文档是索引的基本单元,可以理解成关系数据库表中的一条记录,包含了一组属性信息,同时包含一个唯一标识这一组属性值的ID,通过该ID可以更新一个文档,也可以删除一个文档。

  • 分片(Shards)和副本(Replicas)

一个索引进行分割,分成多个片段,每一个片段称为一个分片,这样划分可以很好地管理索引,跨节点存储, 每个分片本身是一个全功能的完全独立的“索引”,它可以部署在集群中的任何节点;副本是为了保证一个分片的可用性,冗余复制存储,当一个分片对应的数据无法读取时,可以读取其副本,正常提供搜索服务。

副本根据官方文档有以下两个重要作用

  1. 高可用。它提供了高可用来以防分片或节点宕机。为此,一个非常重要的注意点是绝对不要将一个分片的拷贝放在跟这个分片相同的机器上。
  2. 高并发。它允许你的分片可以提供超出自身吞吐量的搜索服务,搜索行为可以在分片所有的副本中并行执行。
  • 集群(cluster)

一个集群是由一个或多个节点(服务器)组成的,通过所有的节点一起保存你的全部数据并且提供联合索引和搜索功能的节点集合。每个集群有一个唯一的名称标识,默认是“elasticsearch”。这个名称非常重要,因为一个节点(Node)只有设置了这个名称才能加入集群,成为集群的一部分。

  • 节点(Node)

一个节点是一个单一的服务器,是集群的一部分,存储数据,并且参与集群的索引和搜索功能。跟集群一样,节点在启动时也会被分配一个唯一的标识名称,这个名称默认是一个随机的UUID(Universally Unique IDentifier)。如果你不想用默认的名称,你可以自己定义节点的名称。这个名称对于管理集群节点,识别哪台服务器对应集群中的哪个节点有重要的作用。

安装-搭建集群

准备三台服务器搭建三个集群节点:

192.168.0.101

192.168.0.102

192.168.0.103

之后在官网下载ES,分别为三台服务器装上Elasticsearch

对于windows服务器,在官网有两种格式下载: ZIP和MSI,可以任选

  • ZIP格式安装:

下载解压后,直接在bin文件中执行elasticsearch.bat即可运行Elasticsearch,

或是执行elasticsearch-service.bat安装成服务即可

  • MSI格式安装:

1.运行elasticsearch-6.2.4.msi;出现如图以下界面,默认目录或是选择目录安装,下一步

2.可以选择是否安装成windows服务,这边先不选择,改为手动开启

3.进行基本配置。下一步

4.先不选任何插件或是分词器,之后安装即可

  • 不管是哪种安装方式,想搭建集群,每个节点还需进入ElasticSearch安装目录下config文件夹中,打开elasticsearch.yml进行配置

节点一配置信息:

bootstrap.memory_lock: false
cluster.name: elasticsearch #集群名称,所有节点必须一致,才能自动加入集群
http.port: 9200             #对外通信端口
network.host: 192.168.0.101 #本机IP
node.data: true         #是否为数据节点
node.ingest: true
node.master: true       #是否为候选主节点
node.name: node-1       #节点名称
path.data: C:\Elasticsearch\data   #索引数据保存目录
path.logs: C:\Elasticsearch\logs   #日记保存目录
transport.tcp.port: 9300        #节点间通信端口
discovery.zen.ping.unicast.hosts: ["192.168.0.102:9300", "192.168.0.103:9300"] #设置集群自动发现机器ip集合 ,
discovery.zen.minimum_master_nodes: 2 #一般用node数/2 + 1。node数不能为偶数 防止脑裂现象
 

节点二配置信息

bootstrap.memory_lock: false
cluster.name: elasticsearch #集群名称,所有节点必须一致,才能自动加入集群
http.port: 9200           #对外通信端口
network.host: 192.168.0.102 #本机IP
node.data: true         #是否为数据节点
node.ingest: true
node.master: true       #是否为候选主节点
node.name: node-2       #节点名称
path.data: C:\Elasticsearch\data   #索引数据保存目录
path.logs: C:\Elasticsearch\logs   #日记保存目录
transport.tcp.port: 9300        #节点间通信端口
discovery.zen.ping.unicast.hosts: ["192.168.0.101:9300", "192.168.0.103:9300"] #设置集群自动发现机器ip集合 ,
discovery.zen.minimum_master_nodes: 2 #一般用node数/2 + 1。node数不能为偶数 防止脑裂现象

节点三配置信息

bootstrap.memory_lock: false
cluster.name: elasticsearch #集群名称,所有节点必须一致,才能自动加入集群
http.port: 9200             #对外通信端口
network.host: 192.168.0.103 #本机IP
node.data: true         #是否为数据节点
node.ingest: true
node.master: true       #是否为候选主节点
node.name: node-3       #节点名称
path.data: C:\Elasticsearch\data   #索引数据保存目录
path.logs: C:\Elasticsearch\logs   #日记保存目录
transport.tcp.port: 9300       #节点间通信端口
discovery.zen.ping.unicast.hosts: ["192.168.0.101:9300", "192.168.0.102:9300"] #设置集群自动发现机器ip集合 ,
discovery.zen.minimum_master_nodes: 2 #一般用node数/2 + 1。node数不能为偶数 防止脑裂现象

  • 分别运行elasticsearch,直接通过chrom应用安装elasticsearch-head浏览器插件,elasticsearch-head可以查看es集群的运行状态以及数据

结果如下(还未加入任何索引):

集群健康值说明:

  1. 绿色:所有的主分片和副本分片都正常可用;
  2. 黄色:所有的主分片可用,但是部分副本分片不可用
  3. 红色:部分主分片不可用

全文检索-Elasticsearch (一) 安装与基础概念的更多相关文章

  1. 【Elasticsearch学习】之基础概念

    Elasticsearch是一个近实时的分布式搜索引起,其底层基于开源全文搜索库Lucene:Elasticsearch对Lucene进行分装,对外提供REST API 的操作接口.基于 ES,可以快 ...

  2. [Elasticsearch] 全文搜索 (一) 基础概念和match查询

    全文搜索(Full Text Search) 现在我们已经讨论了搜索结构化数据的一些简单用例,是时候开始探索全文搜索了 - 如何在全文字段中搜索来找到最相关的文档. 对于全文搜索而言,最重要的两个方面 ...

  3. RabbitMQ 入门之基础概念

    什么是消息队列(MQ) 消息是在不同应用间传递的数据.这里的消息可以非常简单,比如只包含字符串,也可以非常复杂,包含多个嵌套的对象.消息队列(Message Queue)简单来说就是一种应用程序间的通 ...

  4. 白日梦的ES笔记三:万字长文 Elasticsearch基础概念统一扫盲

    目录 一.导读 二.彩蛋福利:账号借用 三.ES的Index.Shard及扩容机制 四.ES支持的核心数据类型 4.1.数字类型 4.2.日期类型 4.3.boolean类型 4.4.二进制类型 4. ...

  5. ElasticSearch安装和核心概念

    1.ElasticSearch安装 elasticsearch的安装超级easy,解压即用(要事先安装好java环境). 到官网 http://www.elasticsearch.org下载最新版的 ...

  6. Elasticsearch教程之基础概念

    基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 1.接近实时(NRT)        Elasticsearch是一个接近实时的搜索平台.这意味 ...

  7. MongoDB入门系列(一):基础概念和安装

    概述 MongoDB是目前非常流行的一种非关系型数据库,作为入门系列的第一篇本篇文章主要介绍Mongdb的基础概念知识包括命名规则.数据类型.功能以及安装等. 环境: OS:Windows Versi ...

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

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

  9. ELK&ElasticSearch5.1基础概念及配置文件详解【转】

    1. 配置文件 elasticsearch/elasticsearch.yml 主配置文件 elasticsearch/jvm.options jvm参数配置文件 elasticsearch/log4 ...

随机推荐

  1. 黑洞版视频裂变程序【接口版】全新上线,全新UI,支持分享数据统计

    黑洞版视频裂变程序[接口版]全新上线,全新UI,支持分享数据统计!   后台效果   程序统一售价:1899/套(包安装,包更新) 注:本程序不属于之前视频程序的更新版,展现形式和广告位设置均不同,是 ...

  2. DWM1000 自动应答代码实现与实例

    这一节继续继承之前帧过滤部分,首先补充一下关于帧过滤部分,如果将目标地址设置为0xFFFF,则同一个网络(物理频道与PANID 都相同),所有节点都应该收到这条信息,这个信息为广播信息,0xFFFF为 ...

  3. TypeScript-封装

    class People { private _name: string; age: number; print() { return this._name + ":" + thi ...

  4. redis + cookies 实现持久登入

    通过登入把用户信息和token加载到redis中去, 将token和部分用户信息存储在cookie中, 下次登入时 判断cookie的token在redis中是否存在, 存在就把用户信息加载出来自动登 ...

  5. 微信小程序开发---视图层(View)

    WXML WXML能力: 数据绑定 列表渲染 条件渲染 模板 事件 数据绑定 数据绑定使用 Mustache 语法(双大括号)将变量包起来,可作用于内容,组件属性(需要在双引号之内),控制属性(需要在 ...

  6. docker 安装 zookeeper

    镜像下载hub.docker.com 上有不少 ZK 镜像, 不过为了稳定起见, 我们就使用官方的 ZK 镜像吧.首先执行如下命令: docker pull zookeeper当出现如下结果时, 表示 ...

  7. js深度复制三种方法

    1.用递归的方式进行深度复制 2.用JSON.stringify加上JSON.parse()进行深度复制 3.用jquery中自带的方法$.extend()进行深度复制 具体实现代码可百度自行查询

  8. Foxmail6.5 ERR LOGIN FAIL 重新输入口令

    这几天 Foxmail 6.5 收邮件不正常,一直报告ERR LOGIN FAIL,要求重新输入口令. 但输入正确的口令也无法收邮件. 反复折腾,最后发现如下设置即可: 邮箱账户设置 --> 邮 ...

  9. kali linux 网络渗透测试学习笔记(二)OWASP ZAP工具扫描SQL injection漏洞失败

    按照惯例,利用OWASP ZAP工具扫描SQL injection漏洞时,应该很快就可以扫描出来,但是在笔者进行扫描的时候,却遇到了以下状况: 这说明了该工具根本就没能够扫描出SQL注入的漏洞,不知道 ...

  10. Python 爬虫利器 Selenium

    前面几节,我们学习了用 requests 构造页面请求来爬取静态网页中的信息以及通过 requests 构造 Ajax 请求直接获取返回的 JSON 信息. 还记得前几节,我们在构造请求时会给请求加上 ...