Elastic Stack 如果你没有听过,那么 ELK 一定听过。ELK 是三款软件的简称,分别是 Elasticsearch、Logstash、Kibana 组成,随着 Elastic 的发展需要融入越来越的技术,比如 Beats,如果再用每个技术的首字母大写拼接,名称会越来越长,所以技术团队决定换一个名称 Elastic Stack ,ELK 是之前的称呼 Elastic Stack 是新的称呼。
全文搜索是很多网站常见功能,比如 GitHub 站内搜索、JD 商品搜索、B 站视频搜索。Elasticsearch 是当今最火的搜索引擎之一,它的底层基于另外一个 java 开源搜索引擎 Lucene,是一款开源分布式搜索引擎,并且提供了一系列 REST API 操作接口。
docker pull docker.io/elasticsearch:版本号
docker pull docker.io/elasticsearch
docker pull docker.io/elasticsearch:7.7.0
docker images
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
mkdir -p /mydata/elasticsearch/plugins # ---这个目录留着装插件
vim /mydata/elasticsearch/config/elasticsearch.yml
# 允许任意主机访问
http.host: 0.0.0.0
# es-head连接配置
http.cors.enabled: true
http.cors.allow-origin: "*"
chmod -R 777 /mydata/elasticsearch/
docker run --name=es_t1 -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.7.0
9200是用户交互端口 9300是集群心跳端口
-d:后台启动
--name:容器名称
-p:端口映射
-e:设置环境变量
-v: 目录映射
discovery.type=single-node:单机运行
b0e9f9f047e6:镜像id
如果启动不了,可以加大内存设置:-e ES_JAVA_OPTS="-Xms512m -Xmx512m"
docker ps -a
docker logs 容器id
############ ubuntu ########
# 查看状态
sudo ufw status
看到Status: inactive 未激活,就是关闭
看到Status: active 已激活,就是开启
# 开启防火墙
sudo ufw enable
# 关闭防火墙
sudo ufw disable
############ centos ########
...
http://106.14.42.253:9200/
docker pull mobz/elasticsearch-head:5
docker run -di --name=elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5
http://106.14.42.253:9100/
首先问一个问题,ElasticSearch中自带的有分词器为什么还要使用IK分词器?
在ElasticSearch中的分词器会把中文分为一个一个的字,例如"今天是周五",会被分成“今”、“天”、“是”,“周”、“五”,这里很明显是不合适的,在大多数场景下需要的是词而不是字。
所以就需要安装中文分词器IK来解决这个问题。
IK提供了两个分词算法:ik_smart和ik_max_word,其中ik_smart为最少切分,ik_max_word为最细力度。
这里需要注意安装的版本需要跟ElasticSearch版本一致。
docker exec -it 容器ID /bin/bash
cd plugins/
mkdir ik
cd ik
yum install wget -y
yum install zip unzip -y
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip
unzip elasticsearch-analysis-ik-7.7.0.zip
rm -rf elasticsearch-analysis-ik-7.7.0.zip
exit
docker restart 0cf9533110