目录
4.3通过IK分词器实现拓展词库,以及屏蔽不需要的创建词条的词语
六、使用JavaRestClient实现创建、删除索引库,判断索引库是否存在
6.1、引入es的RestHighLevelClient依赖
6.2配置config文件,初始化RestHighLevelClient:
一、概念介绍
概念:
什么是ES?
- 从功能上来说,elasticsearchelasticsearchelasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容,实现搜索、日志统计、分析、系统监控等功能
- 从架构上说,elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。
什么是elastic stack?
- elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域
ES能够实现对数据的快速搜索,主要原因就是它采用倒排索引的方式:
倒排索引中包含两部分内容:
- 词条词典(Term Dictionary):记录所有词条,以及词条与倒排列表(Posting List)之间的关系,会给词条创建索引,提高查询和插入效率
- 倒排列表(Posting List):记录词条所在的文档id、词条出现频率 、词条在文档中的位置等信息
- 文档id:用于快速获取文档
- 词条频率(TF):文档在词条出现的次数,用于评分
简单来说就是将一条条数据划分一个个文档,再对整个文档中的某些字段建立倒排索引,将字段按照语义划分成词语,再将每个不同的词语作为主键,对应的值就是文档的id,如下图:
ES搜索流程:
同时ES也是面向文档进行存储,可以是数据库中的一条商品数据,一个订单信息。
文档数据会被序列化为json格式后存储在elasticsearch中
索引:相同类型的文档的集合
映射(mapping):索引中文档的字段约束信息,类似表的结构约束
下面为了加深读者对ES的认识,有关于elasticsearch和数据库的对比表格
MySQL
Elasticsearch
说明
Table
Index
索引(index),就是文档的集合,类似数据库的表(table)
Row
Document
文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式
Column
Field
字段(Field),就是JSON文档中的字段,类似数据库中的列(Column)
Schema