简介:在Linux中安装ElasticSearch,ElasticSearch基础使用命令及配置信息
今天看了一下自己的博客网站,发现内容越来越多,搜索内容时无法全文检索,体验极差。
对于这个问题我最先想到的就是【ElasticSearch】数据库简称ES,全文检索这一块ES是目前做的最好的一个了。其次想到的就是MySQL自带的【n-gram模型】,这个模型也可以做全文检索,但这会导致数据库压力过大,只适合少量用户的场景,而且不支持多表全文检索,缺点实在太多,最终还是选择了ES来做全文检索。
n-gram模型
在讲解ES之前我们还是简单的介绍一下MySQL自带的n-gram模型的使用。
首先我们需要在表上面创建全文检索索引:
# 以修改表的形式创建全文索引
ALTER TABLE 表名 ADD FULLTEXT INDEX 索引名称(字段名,字段名...) WITH PARSER ngram;
# 创建索引
CREATE FULLTEXT INDEX 索引名称 ON 表名(索引字段,字段名...) WITH PARSER ngram;
通过全文检索查询数据
SELECT * FROM 表名 WHERE MATCH(字段名,字段名...) AGAINST('待查询的关键字');
全文检索还有一个全局配置项【ngram_token_size】,这个主要影响中文及英文的内容,如果全文检索主要内容为中文建议使用默认的【ngram_token_size=2】即可。如果是英文,可以在MySQL配置文件中改为1,【ngram_token_size=2】时英文内容搜索将无效。
MySQL全文检索基础使用就这么多了。
ElasticSearch数据库
这里以ElasticSearch最新版【8.8.1】为例,给大家讲讲最新版的安装、相关配置及基础使用。注意我们安装的是 ES8.8.1 版本,这个版本自带一个JVM环境,ES从7开始就自动了一个JVM环境,ES7之前的版本需要我们自己安装JVM环境
1 下载安装
我们可以直接进入官网下载源码,官网已经提供了yum及rpm安装教材,这个教材还是比较详细的,大家可以参照一下。我这里以源码的形式进行安装:
1.1 在/usr/local/目录下创建ElasticSearch的安装目录
mkdir elastic
1.2 进入ElasticSearch安装目录并下载源码
# 进入安装目录
cd elastic
# 下载源码
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.1-linux-x86_64.tar.gz
1.3 下载解压缩源码
tar -zxvf elasticsearch-8.8.1-linux-x86_64.tar.gz
1.4 进入项目根目录
解压缩后生成 elasticsearch-8.8.1 目录,这里面的就是elasticsearch源码了。
cd elasticsearch-8.8.1/
2 ElasticSearch基础配置
elastic的主要配置文件在根目录的【config】目录下,总共有以下三个配置文件:
3 启动ElasticSearch
最新版本的ES不允许我们直接使用root用户运行,所以在启动ES之前我们还需要创建一个ES使用的系统用户
# 创建用户组
groupadd esgroup
# 创建用户并指定其用户组
useradd -g esgroup es
# 设置es密码
passwd es 回车设置密码
给新用户赋予ES目录的权限:
sudo chown -R es:esgroup /usr/local/elastic/
注意:后续操作中如果出现【es is not in the sudoers file. This incident will be reported】或者【Kibana should not be run as root. Use --allow-root to continue】及【Exception in thread "main" java.nio.file.AccessDeniedException】都是因为 ES8 不允许使用 root 用户允许启动
kibana运行时启动需要指定参数才能以root用户运行:bin/kibana --allow-root
除此之外,最新版本的ElasticSearch默认情况下启用了用户密码验证,作为初学者可以关闭验证。而且最新版启动后界面上没有显示监听的端口,我们可以自己在elasticsearch.yml文件中指定。
3.1 关闭用户密码验证及指定监听端口
修改【config/elasticsearch.yml】文件中的【xpack.security.enabled】配置项为false即可
# 监听端口
http.port: 9200
# 关闭用户密码验证
xpack.security.enabled: false
3.2 启动ElasticSearch
上面说过elasticsearch 8 之后不允许以 root 用户启动,所以我们需要切换到之前创建的【es】用户下,如果已经切换到【es】用户可以忽略:
su es
现在我们可以启动elasticsearch了:
./bin/elasticsearch
如果需要以守护进程的方式启动,只需要加上 -d
如果启动后如果有【Unable to locate appender "rolling_old" for logger config "root"】错误信息,主要原因是我们没有修改 【config/elasticsearch.yml】文件中的日志目录,默认的日志目录不存在或者说当前启动ES 的用户没有权限。我们只要修改【path.logs】选项为【/usr/local/elastic/elasticsearch-8.8.1/logs】即可
启动后,我们就可以通过IP+端口的形式访问ElasticSearch了:
http://127.0.0.1:9200/
上面的连接打开后如下图所示,表示启动成功:
4 安装管理后台Kibana
ElasticSearch提供了类似phpMyAdmin一样的网页版本的管理后台。安装管理后台比较简单,回到【/usr/local/elastic】目录下,下载源码并解压缩,之后进入源码目录启动管理后台即可。具体步骤如下:
4.1 下载管理后台代码
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.8.1-linux-x86_64.tar.gz
4.2 解压缩并进入源码目录
# 解压缩
tar -zxvf kibana-8.8.1-linux-x86_64.tar.gz
# 进入解压缩后的源码目录
cd kibana-8.8.1/
4.3 kibana配置目录
kibana配置文件都在源码跟目录下的【config】文件夹下面,其中【kibana.yml】就是主要配置文件。如果启动后无法通过外网访问,可能是允许访问IP段的问题或者是防火墙未开放kibana监听的端口,学些阶段大家可以关闭防火墙。
# kibana监听的端口
server.port: 5601
# 允许访问的IP段,我这里测试使用,允许所有IP段访问,正式环境可以改成指定IP
server.host: "0.0.0.0"
4.4 启动kibana
bin/kibana
如果在root用户下,可以使用【bin/kibana --allow-root】命令启动,--allow-root参数允许使用root用户运行
启动成功之后我们就可以通过IP+端口的方式访问ElasticSearch管理后台,默认端口是5601,完整链接如下:
http://localhost:5601
有遗漏或者不对的可以在我的公众号留言哦