携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第25天,点击查看活动详情
每日英语:
Shall I compare thee to a summer's day?
翻译:我是否该将你比作夏日?
1.商品搜索环境搭建
商品搜索,包含了数据实时同步和搜索两个过程,我们要请求这两个过程之间的关系,这样才能做出符合工作需要的搜索来。
1.1 搜索分析
数据同步流程如下:
1、数据通过程序将Sku添加到数据库
2、通过Canal实现实时将数据同步到ES搜索引擎
3、用户可以在前台使用不同条件进行搜索,关键词、分类、价格区间、动态属性
1.2 ES搭建流程
本次是在centos7上,基于docker,进行搭建ES
1.2.1 安装es
1)创建网络
docker network create es-net
为了让es和kibana容器互联,这里我们需要先创建一个网络。
2)下载es和kibana镜像
docker pull elasticsearch:6.8.12
docker pull kibana:6.8.12
这个我们用的版本是6.8.12,这个算是比较新的了。这块儿安装时间稍微有点儿长,大家耐心等待一会儿。
3)启动es容器
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:6.8.12
命令解释:
docker run -d \ -d 后台运行\
--name es \ -name 容器名字\
-e "ES_JAVA_OPTS变小点。如果不设置这个参数的话,es默认的栈内存大小是1G。
=-Xms256m -Xmx256m" \ 配置栈内存\
-e "discovery.type=single-node" \ 单点模式\
-v es-date:/usr/share/elasticsearch/data \ 数据保存的目录\
-v es-plugins:/usr/share/elasticsearch/plugins \ 插件目录\
--privileged \
--network es-net \
-p 9200:9200 \ 暴露http端口
-p 9300:9300 \ es容器互联端口\
elasticsearch:6.8.12
后期启动后,如果出现启动了,然后又自动关闭了的现象,这个现象是因为你配置的栈内存大于了你现在服务器剩余的栈内存,可以通过设置ES_JAVA_OPTS变小点。如果不设置这个参数的话,es默认的栈内存大小是1G。
4)查看启动后的es
docker ps
5)浏览器访问hppt://IP:9200
安装成功
1.2.2 安装kibana
1)启动kibana
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \ es是安装elasticsearch时的name es对应
--network=es-net \ 安装elasticsearch时对应的网络
-p 5601:5601 \
kibana:6.8.12
2)查看已启动的kibana
docker ps
3)查看启动后的日志
docker logs -f kibana
4)浏览器访问http://IP:5601
1.2.3 安装ik分词器
分词器下载地址:github.com/medcl/elast…
下载后,将压缩包解压,将解压后的文件包命名为ik,上传到linux服务器上,并拷贝到elasticsearch的plugins目录下即可,用如下命令拷贝:
docker cp ik es:/usr/share/elasticsearch/plugins/
重启es:
docker restart es
ik分词器测试:
访问:http://IP:9200/_analyze?analyzer=ik_smart&pretty=true&text=我是谁
总结:本篇主要介绍了一下如何做搜索分析,还有ES的具体搭建流程。