ES入门学习
- 安装
- 单实例安装
下载地址
www.elastic.co
下载5.5.2版本的zip
执行bin目录下的elasticsearch启动es - head插件安装
访问github
搜索elasticsearch-head
解析master.zip
安装node
npm install
master目录下npm run server
修改es配置,config/elasticsearch.yml
- 分布式安装
配置一个es为master
配置es为slave
- 单实例安装
- 基础概念
- 集群和节点
集群包含多个节点,每个集群、节点都有各自的名字,每个节点都可以存储数据、索引数据、搜索数据。 - 索引、类型、文档
索引:含有相同属性的文档集合。相当于库
类型:索引可以定义一个或多个类型,文档必须属于一个类型。相当于表
文档:文档是可以被索引的基本数据单位。相当于表中的一条记录 - 分片和备份
分片:每个索引都有多个分片,每个分片都是一个lucene索引。减少单个服务器的存储压力以及提高搜索性能。
备份:拷贝一份分片就完成了分片的备份。当主分片出现问题时,可以使用备份分片,并且备份分片还可以分摊搜索压力。
默认5个分片,一个备份。
分片数量只能在创建索引时指定,后期不能更改;备份的数量可以动态更改。
索引名称要小写而且不能有中划线
- 集群和节点
- 基本操作
- api格式
http://ip:port:/索引/类型/文档id
常用http动词:GET/POST/PUT/DELETE
put:新增 - 创建索引
- 创建方式
非结构化创建:没有mappings类型映射
结构化创建:有mappings
- 插入文档数据
- 插入时指定文档id
- 插入时由es自动生成文档id
- 修改文档数据
- 直接修改文档
doc后面跟要修改的文本
- 直接修改文档
- 删除文档数据
- 删除索引
- 删除文档
- 删除索引
- 查询
- 简单查询
- 条件查询
query是查询关键词;match模糊匹配关键词
sort是排序关键字 - 聚合查询
aggs聚合关键字,“group_by_word_count”聚合条件的名字,terms关键词,field聚合字段
- 统计计算
- 简单查询
- 创建方式
- api格式
- 高级查询
- 子条件查询—特定字段查询所指特定值
- Query Context
在查询过程中,除了判断文档是否满足查询条件外,es还会计算一个_score来标识匹配的程度,旨在判断目标文档和查询条件匹配的有多好- 模糊匹配
match,会将单词拆开模糊查询 - 短语整体模糊匹配
match_phrase,单词不会拆开整体模糊查询 - 多字段模糊匹配
multi_match
这里的字段是或的关系
是否拆开单词需要验证
- 语法查询
query_string
- 字段查询
- 精准查询
- 范围查询
- 精准查询
- 模糊匹配
- Filter Context
- Query Context
- 复合条件查询—以一定的逻辑组合子条件查询
- 子条件查询—特定字段查询所指特定值
- 基本概念
- 文档的元数据
- 索引
- 定义
索引是一类文档的结合
逻辑空间的概念:每个索引都有自己的Mapping定义,用于定义包含的文档的字段名和字段类型
shard物理空间概念:索引中的数据分散在shard上 - 索引的mapping和settings
mapping定义文档字段的类型,settings定义不同的数据分布 - 如图
- 定义
- 文档的元数据