一、Elasticsearch介绍和安装

用户访问首页时,一般都会直接搜索来寻找自己想要购买的商品。而商品的数量非常多,而且分类繁杂。如果能正确的显示出用户想要的商品,并进行合理的过滤,尽快促成交易,是搜索系统要研究的核心。面对这样复杂的搜索业务和数据量,使用传统数据库搜索就显得力不从心,一般都会使用全文检索技术,例如:Elasticsearch。

1.1 简介

Elasticsearch是一个分布式的RESTful风格的搜索和数据分析引擎。Elasticsearch具备以下特点:

  • 分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)

  • Restful风格,一切API都遵循Rest原则,容易上手

  • 近实时搜索,数据更新在Elasticsearch中几乎是完全同步的。

1.2 安装和配置

在linux下安装Elasticsearch。

将压缩包上传,然后解压缩:tar -zxvf elasticsearch-6.4.2.tar.gz

如果解压缩发生错误:tar: 归档文件中异常的 EOF,需要重新下载安装包。

1.3 运行

进入elasticsearch/bin目录,可以看到下面的执行文件:

乐优商城(十四)

然后输入命令: ./elasticsearch

会发生错误,下面就常见的错误进行总结。

1.3.1 内核过低

乐优商城(十四)

Elasticsearch的插件要求centos的linux内核至少3.5以上版本 ,修改elasticsearch.yml文件,在最下面添加如下配置:

bootstrap.system_call_filter: false

然后重启。

1.3.2 文件权限不够

乐优商城(十四)

[1]: max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

切换为root用户,然后修改配置文件:vim /etc/security/limits.conf

添加下面内容:

* soft nofile 65536

* hard nofile 131072

* soft nproc 4096

* hard nproc 4096

1.3.3 线程数不够

[1]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]

继续配置

打开文件夹:cd /etc/security/limits.d

修改里面以conf结尾的文件

* soft nproc 1024

改为

* soft nproc 4096

1.3.4 进程虚拟内存

[3]: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

 m.max_map_count:限制一个进程可以拥有的VMA(虚拟内存区域)的数量,继续修改配置文件:

vim /etc/sysctl.conf 

添加下面内容:

vm.max_map_count=655360

然后执行命令:

sysctl -p

1.3.5 重启

乐优商城(十四)

可以看到绑定了两个端口:

  • 9300:集群节点间通讯接口

  • 9200:客户端访问接口

我们在浏览器中访问:http://192.168.19.121:9200/

乐优商城(十四)

1.4 安装Kibana

Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图,线状图,饼图等。而且还提供了操作Elasticsearch索引数据的控制台,并且提供了一定的API提示。

在windows下使用kibana,与elasticsearch的版本保持一致。

1.4.1 配置

进入安装目录下的config目录,修改kibana.yml文件:

修改elasticsearch服务器的地址:

elasticsearch.url: "http://192.168.19.121:9200/"

1.4.2 运行

进入安装目录下的bin目录:

乐优商城(十四)

双击运行:

乐优商城(十四)

发现kibana的监听端口是5601 ,访问http://127.0.0.1:5601

乐优商城(十四)

1.4.3 控制台

选择左侧的DevTools菜单,即可进入控制台页面:

乐优商城(十四)

在页面右侧,我们就可以输入请求,访问Elasticsearch了。

1.5 安装ik分词器

1.6 API

相关文章: