1.elasticsearch介绍
当我们去接触一些电商网站的时候,那么我们肯定都会接触到电商网站的搜索,早期的搜素基本上都是采用在数据库里面利用模糊查询去做。这种情况只适用于简单的毕业设计或者说一些课设,但是如果是正常的项目,那么肯定采用的是全文检索技术。尤其是在当今这种数据量比较大的项目环境下,掌握全文检索你想相当于掌握了核心科技。
全文检索技术目前主流有两种:
- 一种是基于
Lucene
的solr
- 一种是基于
Lucene
的elasticsearch
这两种方式各有各的好处和缺点,目前稍微流行一点的应该是elasticsearch

2.安装elasticsearch
我们把
elasticsearch
安装在Liunx
里面,因为在实际开发过程中,我们也是把这种安装在Linux中
elasticsearch
为了安装考虑,不允许安装在root
用户下我的linux配置如下:

我安装的是
Ubuntu
的服务器版,同时我在服务器里面已经安装好了ssh服务,可以使用远程去访问
2.1 上传压缩包并且解压

先上传到ubuntu系统上

解压命令:
tar -zxvf elasticsearch-6.2.4.tar.gz
重命名一下:
mv elasticsearch-6.2.4/ elasticsearch

因为这个全文检索技术,也是基于
java
的,所以需要安装java
环境
2.2 目录详解

2.3 修改配置
既然修修改配置,那么我们肯定是到config
目录下面去修改一下两个配置文件

2.3.1 jvm.options
因为elasticsearch
是基于java
语言编写的,所以他默认的java配置需要修改一下
-
编辑文件
vim jvm.options

发现默认占用内存为1G,太庞大了,所以我们调小一点
-
修改占用内存
-Xms512m -Xmx512m
2.3.2 elasticsearch.yml
vim elasticsearch.yml
-
修改数据存储目录和日志目录
path.data: /home/wangzh/elasticsearch/data # 数据目录位置 path.logs: /home/wangzh/elasticsearch/logs # 日志目录位置

我们把data和logs目录修改指向elasticsearch
的安装目录。但是这data
目录并不存在,因此我们需要创建出来
进入安装目录创建data目录
mkdir data

-
修改可以访问的ip
默认情况下,
elasticsearch
只允许自己本机ip访问,这明显是不合理的,所以需要修改
image-20200318150924193.png
修改如下:
network.host: 0.0.0.0
这代表允许任何ip可以访问到
3.运行elasticsearch
运行bin目录下的elasticsearch

./bin/elasticsearch
启动后发现报错如下:
[3]: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
vm.max_map_count
:限制一个进程可以拥有的VMA
(虚拟内存区域)的数量
修改/etc/systcl.conf
,添加下面内容
vm.max_map_count=655360
然后执行命令
sudo sysctl -p
再次启动就正常了
[图片上传失败...(image-43bc70-1587607759046)]
我们发现启动的端口有两个,一个是9200
,一个是9300
- 9200 端口是单机版端口
- 9300 端口是集群版端口
通过浏览器访问9200端口,效果如下:

4.安装Kibana
因为elasticsearch
并没有给我们提供可视化界面,所以我们需要安装一个可是化界面,那么这个就是Kibana
4.1 什么是Kibana

Kibana
是一个基于Node.js
的Elasticsearch
索引库数据统计工具,可以利用Elasticsearch
的聚合功能,生成各种图表,如柱形图,线状图,饼图等。
而且还提供了操作Elasticsearch
索引数据的控制台,并且提供了一定的API提示,非常有利于我们学习Elasticsearch
的语法。
4.2 安装
因为Kibana
依赖于Node.js
,我们一般是在windows系统里面去做测试,所以我们安装在windows即可
4.2.1 安装node
安装node.js
就不详细描述了,你可以去node.js官网下载一个node并安装好就可以了。
4.2.2 安装kibana

两个版本保持一致。解压即安装。
4.3 配置并运行
4.3.1 配置
进入安装目录下的config目录,修改kibana.yml文件:
修改elasticsearch服务器的地址:
elasticsearch.url: http://192.168.1.104:9200

4.3.2 运行
点击bin目录下的kibana.bat
,即可运行

运行效果

通过浏览器去访问http://localhost:5601
,效果如下:

4.3.4 控制台
我们可以通过控制台,去帮助我们学习elasticsearch

5.安装IK分词器
5.1 什么是分词器
从一串文本中切分出一个一个的词条,并对每个词条进行标准化,例如我们去百度搜索一句话时,并不是那着这句话去进行搜索
而是先将这句话分成一个一个的词语或者单词,然后再去搜索,如图:

先将杰普最帅的是谁
这句话拆分成一个一个的词语,然后根据这一个个的词语再去搜索
5.2 分词器类型
在elasticsearch
中内置了很多分词器,具体如下:
Standard Analyzer
默认的分词器,将词汇单元转换成小写形式,并去除停用词和标点符号,支持中文采用的方法为单字切分.
Simple Analyzer
首先会通过非字母字符来分割文本信息,然后将词汇单元统一为小写形式.该分析器会去掉数字类型的字符.
Whitespace Analyzer
仅仅是去除空格,对字符没有小写化,不支持中文;并且不对生成的词汇单元进行其他的标准化处.
Language Analyzer
提供了30多种常见语言的分词器,不支持中文。
以上所有分词器,并不是适用于中文去进行分词,因此我们需要安装一个对中文支持友好的分词器,那就是IK分词器
IK分词器的版本要安装ES的版本一致
5.3 安装
- 先将分词器上传到
ubuntu
中


-
将分词器解压到
elasticsearch
目录下面的plugins
目录下使用unzip解压,如果没有这个命令请先安装
sudo apt-get install unzip
解压
cd ~ unzip elasticsearch-analysis-ik-6.2.4.zip -d ./elasticsearch/plugins/
重启
elasticsearch
image-20200318162803646.png
5.4 测试
先不用管熟不熟,先来简单测试一下
在控制台输入以下命令:
POST _analyze
{
"analyzer":"ik_max_word",
"text":"我是中国人"
}
响应结果:
{
"tokens": [
{
"token": "我",
"start_offset": 0,
"end_offset": 1,
"type": "CN_CHAR",
"position": 0
},
{
"token": "是",
"start_offset": 1,
"end_offset": 2,
"type": "CN_CHAR",
"position": 1
},
{
"token": "中国人",
"start_offset": 2,
"end_offset": 5,
"type": "CN_WORD",
"position": 2
},
{
"token": "中国",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 3
},
{
"token": "国人",
"start_offset": 3,
"end_offset": 5,
"type": "CN_WORD",
"position": 4
}
]
}

目前只是单机版,后面会单独开章节搭建各种常用软件集群
网友评论