1、了解ES (1)什么是elasticsearch? 一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能。 (2)什么是elastic stack(ELK)? 是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch。 beats、Logstash:数据收集 kibana:图形展示 elasticsearch:数据存储、搜索的核心功能
分布式搜索引擎
搜索
日志统计
分析
系统监控
beats、Logstash
kibana
elasticsearch
(3)什么是Lucene? 是Apache的开源搜索引擎类库,提供了搜索引擎的核心API。 elasticsearch采用倒排索引: 文档(document):每条数据就是一个文档 词条(term):文档按照语义分成的词语(词条不能重复) 2、倒排索引
正向索引:根据文档找词条 倒排索引:根据词条找文档,更擅长于基于文档的部分内容进行搜索。
3、es的一些概念
4、安装es、kibana 5、分词器 默认分词器:standard 中文分词器:chinese
中文分词推荐使用IK分词器:https://github.com/medcl/elasticsearch-analysis-ik/release ik_smart和ik_max_word
IK分词器
ik_smart
ik_max_word
1、mapping映射属性 2、索引库的CRUD
1、新增文档
2、查询文档
3、删除文档 4、修改文档
什么是RestClient? ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。 官网地址:https://www.elastic.co/guide/en/elasticsearch/client/index.html 步骤一:导入课前资料
总结:
批量操作 思考: MySQL与Elasticsearch有什么差别呢? Elasticsearch的文档操作API有什么样的规律?
官方文档: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html 1、DSL查询分类 2、全文检索查询 回对用户输入的内容分词,常用于搜索框搜索。 3、精准查询 4、地理坐标查询 5、组合查询 6、FunctionScoreQuery 7、BooleanQuery
1、排序 **注意:**指定排序字段后,打分机制会失效。
2、分页
3、高亮
private RestHighLevelClient client;
要构建查询条件,只要记住一个类:QueryBuilders 1、快速入门 2、match查询 3、精确查询 4、复合查询 5、排序、分页、高亮 本文图片来自视频学习过程中所截,主要用于个人复习,视频来源:https://www.bilibili.com/video/BV1LQ4y127n4
QueryBuilders