目录
第一章 ElasticSearch简介
1.1 什么是ElasticSearch
1.2 ElasticSearch的使用案例
1.3 ElasticSearch对比Solr
第二章 ElasticSearch安装与启动
2.1 ElasticSearch服务
ElasticSearch的官方地址:
Elasticsearch: The Official Distributed Search & Analytics Engine | Elastic
Window版的ElasticSearch的安装很简单,类似Window版的Tomcat,解压开即安装完毕,解压后的ElasticSearch 的目录结构如下:
修改elasticsearch配置文件:config/elasticsearch.yml,增加以下两句命令:
http.cors.enabled: true
http.cors.allow‐origin: "*"
此步为允许elasticsearch跨越访问,如果不安装后面的elasticsearch-head是可以不修改,直接启动。
2.2 启动ES服务
2.3 安装ES的图形化界面插件
安装插件的方式有两种,在线安装和本地安装。本文档采用本地安装方式进行head插件的安装。elasticsearch-5-*以上版本安装head需要安装node和grunt
下载head插件:https://github.com/mobz/elasticsearch-head
下载nodejs:https://nodejs.org/en/download/
安装完毕,可以通过cmd控制台输入:node -v 查看版本号
将grunt安装为全局命令 ,Grunt是基于Node.js的项目构建工具
在cmd控制台中输入如下执行命令: npm install ‐g grunt‐cli
进入elasticsearch-head-master目录启动head,在命令提示符下输入命令:
>npm install
>grunt server
打开浏览器,输入 http://localhost:9100
第三章 ElasticSearch相关概念(术语)
3.1 概述
3.2 Elasticsearch核心概念
3.2.1 索引 index
3.2.2 类型 type
3.2.3 字段Field
相当于是数据表的字段,对文档数据根据不同属性进行的分类标识。
3.2.4 映射 mapping
3.2.5 文档 document
3.2.6 接近实时 NRT
Elasticsearch是一个接近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒以内)。
3.2.7 集群 cluster
3.2.8 节点 node
3.2.9 分片和复制 shards&replicas
第四章 ElasticSearch的客户端操作
实际开发中,主要有三种方式可以作为elasticsearch服务的客户端:
第一种,elasticsearch-head插件
第二种,使用elasticsearch提供的Restful接口直接访问
第三种,使用elasticsearch提供的API进行访问
4.1 安装Postman工具
Postman中文版是postman这款强大网页调试工具的windows客户端,提供功能强大的Web API & HTTP 请求调试。软件功能非常强大,界面简洁明晰、操作方便快捷,设计得很人性化。Postman中文版能够发送任何类型的 HTTP 请求 (GET, HEAD, POST, PUT..),且可以附带任何数量的参数。
Postman官网:https://www.getpostman.com
4.2 使用Postman工具进行Restful接口访问
4.2.1 ElasticSearch的接口语法
curl ‐X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' ‐d '<BODY>'
4.2.2 创建索引index和映射mapping
请求url:
PUT localhost:9200/blog1
4.2.3 创建索引后设置Mapping
4.2.4 删除索引index
DELETE localhost:9200/blog1
4.2.5 创建文档document
4.2.6 修改文档document
POST localhost:9200/blog1/article/1
4.2.7 删除文档document
DELETE localhost:9200/blog1/article/1
4.2.8 查询文档-根据id查询
GET localhost:9200/blog1/article/1
4.2.9 查询文档-querystring查询
4.2.10 查询文档-term查询
POST localhost:9200/blog1/article/_search
第五章 IK 分词器和ElasticSearch集成使用
5.1 上述查询存在问题分析
在进行字符串查询时,我们发现去搜索"搜索服务器"和"钢索"都可以搜索到数据;
而在进行词条查询时,我们搜索"搜索"却没有搜索到数据;
究其原因是ElasticSearch的标准分词器导致的,当我们创建索引时,字段使用的是标准分词器:
例如对 "我是程序员" 进行分词
标准分词器分词效果测试:
http://127.0.0.1:9200/_analyze?analyzer=standard&pretty=true&text=我是程序员
我,是,程,序,员
5.2 IK分词器简介
5.3 ElasticSearch集成IK分词器
5.3.1 IK分词器的安装
1)下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
2)解压,将解压后的elasticsearch文件夹拷贝到elasticsearch-5.6.8\plugins下,并重命名文件夹为analysis-ik
3)重新启动ElasticSearch,即可加载IK分词器
5.3.2 IK分词器测试
1)最小切分:在浏览器地址栏输入地址
http://127.0.0.1:9200/_analyze?analyzer=ik_smart&pretty=true&text=我是程序员
我,是,程序员
2)最细切分:在浏览器地址栏输入地址
http://127.0.0.1:9200/_analyze?analyzer=ik_max_word&pretty=true&text=我是程序员
我,是,程序,程序员,员
5.4 修改索引映射mapping
5.4.1 重建索引
删除原有blog1索引
DELETE localhost:9200/blog1
创建blog1索引,此时分词器使用ik_max_word
PUT localhost:9200/blog1
5.4.2 再次测试queryString查询
5.4.3 再次测试term测试
第六章 ElasticSearch集群
6.1 集群的相关概念
6.1.1 集群 cluster
6.1.2 节点 node
6.1.3 分片和复制 shards&replicas
6.2 集群的搭建
6.2.1 准备三台elasticsearch服务器
创建elasticsearch-cluster文件夹,在内部复制三个elasticsearch服务
6.2.2 修改每台服务器配置
修改elasticsearch-cluster\node*\config\elasticsearch.yml配置文件
node1节点:
6.2.3 启动各个节点服务器
双击elasticsearch-cluster\node*\bin\elasticsearch.bat
6.2.4 集群测试
添加索引和映射