elasticsearch是什么?
elasticsearch 是个开源的分布式海量数据的搜索引擎
底层是基于 lucene 的java搜索引擎类库
主要是使用倒排索引来实现海量数据的搜索引擎
es
kebana
国内使用的分词器是 ik 分词器
ik分词器
- ik_smart:智能切分,粗粒度 经典切分
- ik_max_word:最细切分,细粒度
什么是倒排索引?
倒排索引的流程:
将将每一个文档的数据利用算法分词,得到一个个词条
创建表,每行数据包括词条、词条所在文档id、位置等信息
因为词条唯一性,可以给词条创建索引,例如hash表结构索引
访问es 使用的是 resfull 风格的访问方式
mapping是对索引库中文档的约束,常见的mapping属性包括:
- type:字段数据类型,常见的简单类型有:
- 字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)
- 数值:long、integer、short、byte、double、float、
- 布尔:boolean
- 日期:date
- 对象:object
- index:是否创建索引,默认为true
- analyzer:使用哪种分词器
- properties:该字段的子字段