ElasticSearch(一)【简介】

一、ES简介


1.1 概述

什么是ElasticSearch

ElasticSearch简称ES,是基于Apache Lucene构建的开源搜索引擎,是当前最流行的企业级搜索引擎。Lucene本身就可以被认为迄今为止性能最好的一款开源所搜引擎工具包,但是Lucene的API相对复杂,需要深厚的搜索理论。很难集成到实际应用当中去。ES采用Java语言编写,提供了简单易用的Restful API,开发者可以使用其简单的Restful API,开发相关的搜索功能,从而避免Lucene的复杂性

ElasticSearch诞生

多年前,一个叫做Shay Banon的刚结婚不久的失业开发者,由于妻子要去伦敦学习厨师,他便跟着也去了。在他找工作的过程中,为了给妻子构建一个食谱的搜索引擎,他开始构建一个早期版本的Lucene

直接基于Lucene工作会比较困难,所以Shay开始抽象Lucene代码以便Java程序员可以在应用中添加搜索功能。他发布了他的第一个开源项目,叫做"Compass"

后来Shay找到一份工作,这份工作处在高性能和内存数据网格的分布式环境中,因此高性能的、实时的、分布式的搜索引擎也是理所当然需要的。然后他决定重写Compass库使其成为一个独立的服务叫做Elasticsearch

第一个公开版本出现在2010年2月,在那之后Elasticsearch已经成为Github上最受欢迎的项目之一,代码贡献者超过300人。一家主营Elasticsearch的公司就此成立,他们一边提供商业支持一边开发新功能,不过Elasticsearch将永远开源且对所有人可用

全文检索

全文检索是计算机程序通过扫描文章中的每一个词、对每一个词建立一个索引,指明该词在文章中出现的次数位置。当用户查询时,根据建立的索引查找,类似于通过字典的检索字表查字的过程

全文索引(Full-Text Retrieval)以文本作为检索对象,找出含有指定词汇的文本。全面、准确和快速是衡量全文检索系统的关键指标

  • 只处理文本、不处理语义
  • 搜索时英文不区分大小写
  • 结果列表有相关度排序

1.2 基础安装

环境准备

  • centos7.x+
  • jdk11+(可以不需要配置jdk,往下看即可)

官方下载地址https://www.elastic.co/cn/downloads/elasticsearch

查看以前的版本

在这里插入图片描述

选择对应的版本号和引擎,点击Download

在这里插入图片描述

安装Linux版本的引擎包

在这里插入图片描述

下载好后,使用 xftp 将压缩包上传到Linux目录下

在这里插入图片描述

将压缩包进行解压

tar -zxvf elasticsearch-7.14.0-linux-x86_64.tar.gz 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

查看elasticsearch自带的java版本

在这里插入图片描述

解决自带jdk版本过低问题

在这里插入图片描述

- 这个错误是系统jdk版本与es要求jdk版本不一致,es默认需要jdk11以上的版本,当前系统使用jdk8,需要从新安装jdk11才行
- 解决方案
 方案一: 安装jdk11+,并配置环境变量
 方案二: ES包中目录就是es需要的jdk,只需要将这个目录配置到ES_JAVA_HOME环境变量即可

这里我们使用方案二解决

# 配置环境变量,在/etc/profile目录文件下,文件底部添加如下
vim /etc/profile

# elasticsearch自带jdk的路径
ES_JAVA_HOME=/usr/local/elasticsearch/elasticsearch-7.14.0/jdk
export ES_JAVA_HOME
# 重新加载环境
source /etc/profile

注意es默认是不允许root用户去启动elasticsearch,所以需要给普通用户添加权限

在这里插入图片描述

运行成功的标志

在这里插入图片描述

1.3 访问测试

本地访问

使用外部端口访问,默认是在窗口运行,并且端口号是9200

# 访问端口
curl http://localhost:9200
# 添加参数-d后台启动
./elasticsearch -d

在这里插入图片描述

远程访问

# 默认ES无法使用主机ip进行远程连接,需要开启远程连接权限
- 修改ES安装包中config/elasticsearch.yml配置文件
vim elasticsearch.yml

在这里插入图片描述

修改完之后,重启elasticsearch报错

  • 最大虚拟内存太低
  • 默认是生产模式启动(集群的方式启动)

在这里插入图片描述

解决问题一(用户的软硬限制)

### 找到文件 /etc/security/limits.conf,在文件的最后追加如下配置:
# 软硬问题(修改这里即可)
[totoro为用户名称,作用域]
totoro soft nofile 65536
totoro hard nofile 65536

# 最大线程数问题(无需修改,有报错添加即可)
totoro soft nofile 65535
totoro hard nofile 65537
vim /etc/security/limits.conf

在这里插入图片描述

解决问题二(内存太低)

### 以root身份进行修改
# 在/etc/sysctl.conf目录文件下,修改以下参数
vm.max_map_count=262144	# centos7 系统
# 保存后,执行以下命令即可生效
sysctl -p

解决问题三(集群修改为单机)

### 编辑elasticsearch.yml文件
cluster.initial_master_nodes: ["node-1"]
# 执行以下命令即可生效
sysctl -p
vim elasticsearch.yml
# 通过:set nu 显示行数,位置定位在74行,如下图

在这里插入图片描述

重新启动elasticsearch,并开启防火墙端口号,通过外部访问端口

firewall-cmd --zone=public --add-port=9200/tcp --permanent 
systemctl restart firewalld.service		# 重启防火墙命令

在这里插入图片描述

在这里插入图片描述

1.4 Docker安装

docker安装教程

# 运行docker命令
systemct start docker

### 1.拉取elasticsearch镜像
docker pull elasticsearch:7.14.0

### 2.运行ES
docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.14.0
-d	后台运行
-p 	本地端口与docker容器中的端口映射
-e	指定单机模式环境运行

### 3.访问ES
http://192.168.159.100:9200

### 根据容器id查看日志输出
docker logs -f 1343ec1236e7

在这里插入图片描述

在这里插入图片描述

主机访问测试

http://ip:9200/

在这里插入图片描述

下一篇文章ElasticSearch - Kibana

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Naijia_OvO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值