ElasticSearch day01
ES与Lucene的关系
都是基于倒排索引实现的,倒排索引:内容词条与内容唯一标识的关联索引表
- lucene是java语言中最流行的全文搜索引擎
- ES是基于lucene实现的分布式全文搜索引擎
什么是ES?
-
定义:是一个基于lucene实现的分布式全文搜索引擎
-
原理:
- 倒排索引(词条和内容)
-
优点:
- 性能高
- 搜索数据量大
- 线性扩容
-
缺点:
- 不支持事务,存储的数据安全性偏低
-
组成:
-
index:索引库(类似mysql的database)
-
type:索引类型(类似mysql的table)
-
document:文档(类似mysqll的一行数据row)
-
field:文档字段(类似mysql的列column)
-
mapping:document结构的映射
-
自动创建倒排索引
-
索引操作的URL
请求方式 http://ip:端口/[索引名称,索引名称,索引表达式]/[type1,type2]/[id1,id2]/[内置指令]
内置指令
- _all,查看所有的索引信息
- _close:关闭索引,不能新增
- _open:打开索引
- _search:数据的查询
- _mapping:设置索引的机构
- _analyze:测试分词
ES的数据类型
- 简单
- text:分词,不聚合
- keyword:不分词,可聚合
ES映射结构
创建索引时创建、单独创建
ES文档
- 内置了_id字段作为文档的唯一id,可以指定成我们自己的唯一ID
- 操作文档时需要指定到type级别
- 7.x版本默认是_doc
- 7.x之前type名称可指定
IK分词器
- ik_smart:粗粒度分词【推荐】
ype名称可指定
IK分词器
- ik_smart:粗粒度分词【推荐】
- ik_max_word:细粒度分词