一、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/
文章来源:https://www.toymoban.com/news/detail-719379.html
下一篇文章《ElasticSearch - Kibana》文章来源地址https://www.toymoban.com/news/detail-719379.html
到了这里,关于ElasticSearch(一)【简介】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!