乐优商城(十四)Elasticsearch学习笔记

目录

一、Elasticsearch介绍和安装

1.1 简介

1.2 安装和配置

1.3 运行

1.3.1 内核过低

1.3.2 文件权限不够

1.3.3 线程数不够

1.3.4 进程虚拟内存

1.3.5 重启

1.4 安装Kibana

1.4.1 配置

1.4.2 运行

1.4.3 控制台

1.5 安装ik分词器

1.6 API


一、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分词器

将分词器解压到Elasticsearch目录的plugins目录中 ,

解压命令:unzip elasticsearch-analysis-ik-6.3.0.zip -d ik-analyzer

然后重启elasticsearch。

测试:

在kibana控制台输入下面的请求:

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
    }
  ]
}

1.6 API

猜你喜欢

转载自blog.csdn.net/lyj2018gyq/article/details/82971970