全文检索-Elasticsearch (一) 安装与基础概念
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口
Elasticsearch由java开发,所以在搭建时,需先安装java JDK
几个基本概念
- 索引(Index)
一个索引就是含有相似结构或性质特性的文档的集合,例如用户信息数据可以作为一个索引,文章信息也可应作为另一个索引。
- 文档(Document)
文档是索引的基本单元,可以理解成关系数据库表中的一条记录,包含了一组属性信息,同时包含一个唯一标识这一组属性值的ID,通过该ID可以更新一个文档,也可以删除一个文档。
- 分片(Shards)和副本(Replicas)
一个索引进行分割,分成多个片段,每一个片段称为一个分片,这样划分可以很好地管理索引,跨节点存储, 每个分片本身是一个全功能的完全独立的“索引”,它可以部署在集群中的任何节点;副本是为了保证一个分片的可用性,冗余复制存储,当一个分片对应的数据无法读取时,可以读取其副本,正常提供搜索服务。
副本根据官方文档有以下两个重要作用
- 高可用。它提供了高可用来以防分片或节点宕机。为此,一个非常重要的注意点是绝对不要将一个分片的拷贝放在跟这个分片相同的机器上。
- 高并发。它允许你的分片可以提供超出自身吞吐量的搜索服务,搜索行为可以在分片所有的副本中并行执行。
- 集群(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集群的运行状态以及数据
结果如下(还未加入任何索引):

集群健康值说明:
- 绿色:所有的主分片和副本分片都正常可用;
- 黄色:所有的主分片可用,但是部分副本分片不可用
- 红色:部分主分片不可用
全文检索-Elasticsearch (一) 安装与基础概念的更多相关文章
- 【Elasticsearch学习】之基础概念
Elasticsearch是一个近实时的分布式搜索引起,其底层基于开源全文搜索库Lucene:Elasticsearch对Lucene进行分装,对外提供REST API 的操作接口.基于 ES,可以快 ...
- [Elasticsearch] 全文搜索 (一) 基础概念和match查询
全文搜索(Full Text Search) 现在我们已经讨论了搜索结构化数据的一些简单用例,是时候开始探索全文搜索了 - 如何在全文字段中搜索来找到最相关的文档. 对于全文搜索而言,最重要的两个方面 ...
- RabbitMQ 入门之基础概念
什么是消息队列(MQ) 消息是在不同应用间传递的数据.这里的消息可以非常简单,比如只包含字符串,也可以非常复杂,包含多个嵌套的对象.消息队列(Message Queue)简单来说就是一种应用程序间的通 ...
- 白日梦的ES笔记三:万字长文 Elasticsearch基础概念统一扫盲
目录 一.导读 二.彩蛋福利:账号借用 三.ES的Index.Shard及扩容机制 四.ES支持的核心数据类型 4.1.数字类型 4.2.日期类型 4.3.boolean类型 4.4.二进制类型 4. ...
- ElasticSearch安装和核心概念
1.ElasticSearch安装 elasticsearch的安装超级easy,解压即用(要事先安装好java环境). 到官网 http://www.elasticsearch.org下载最新版的 ...
- Elasticsearch教程之基础概念
基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 1.接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味 ...
- MongoDB入门系列(一):基础概念和安装
概述 MongoDB是目前非常流行的一种非关系型数据库,作为入门系列的第一篇本篇文章主要介绍Mongdb的基础概念知识包括命名规则.数据类型.功能以及安装等. 环境: OS:Windows Versi ...
- ElasticSearch 全文检索— ElasticSearch 安装部署
ElasticSearch 规划-集群规划 ElasticSearch 规划-集群规划 ElasticSearch 规划-用户规划 ElasticSearch 规划-目录规划 ElasticSearc ...
- ELK&ElasticSearch5.1基础概念及配置文件详解【转】
1. 配置文件 elasticsearch/elasticsearch.yml 主配置文件 elasticsearch/jvm.options jvm参数配置文件 elasticsearch/log4 ...
随机推荐
- 基于.net的Socket异步编程总结
最近在为公司的分布式服务框架做支持异步调用的开发,这种新特性的上线需要进行各种严格的测试.在并发性能测试时,性能一直非常差,而且非常的不稳定.经过不断的分析调优,发现Socket通信和多线程异步回调存 ...
- 1、搭建 maven 环境
1.创建 Maven 工程 这里需要注意的: 创建时,需要将 maven 工程的打包方式设置为 war,因为我们创建的是一个web工程 创建后,可能会报错,会提示没有 web.xml 文件,这是因为 ...
- 理解JavaScript【转】
第一题 if (!("a" in window)) { var a = 1; } alert(a); 第二题 var a = 1, b = function a(x ...
- 在 Vim 中优雅地查找和替换(转)
总有人问我 Vim 中能不能查找,当然能!而且是超级强的查找! 这篇文章来详细介绍 Vim 中查找相关的设置和使用方法. 包括查找与替换.查找光标所在词.高亮前景/背景色.切换高亮状态.大小写敏感查找 ...
- msxfs.dll函数加载代码
msxfs.dll函数加载代码 #include "stdafx.h" #include "WSXFSLoader.h" NS_AWP_DEVICE_WOSA_ ...
- 小飞机ss端口被占用处理
如图所示: 解决方法: 1.运行cmd 2.输入命令:netstat -aon|findstr "1080" 3.获取使用该端口的PID---“8540”,如下图所示: 4.输入命 ...
- angular.lowercase()
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JS中[object object]怎么取值
错误信息:本来是要显示JSON对象的 结果控制台打印了[object object] 需要做一个简单的转换,如下: var jsonData = JSON.stringify(data);// 转成 ...
- Spring + SpringMVC + Mybatis项目中redis的配置及使用
maven文件 <!-- redis --> <dependency> <groupId>redis.clients</groupId> <art ...
- day11函数(形参实参)
形参与实参 def fn(形参们): pass # 形参:定义函数,在括号内声明的变量名,用来结束外界传来的值# 实参:调用函数,在括号内传入的实际值,值可以为常量.变量.表达式或三者的组合 # 注: ...