分布式搜索(elasticsearch)

一、初始elasticsearch

1、了解ES
(1)什么是elasticsearch?
  一个开源的分布式搜索引擎,可以用来实现搜索日志统计分析系统监控等功能。
  
(2)什么是elastic stack(ELK)?
  是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch。
beats、Logstash:数据收集
kibana:图形展示
elasticsearch:数据存储、搜索的核心功能

(3)什么是Lucene?
  是Apache的开源搜索引擎类库,提供了搜索引擎的核心API。
elasticsearch采用倒排索引:
文档(document):每条数据就是一个文档
词条(term):文档按照语义分成的词语(词条不能重复)
2、倒排索引
分布式搜索(elasticsearch)_第1张图片

正向索引:根据文档找词条
倒排索引:根据词条找文档,更擅长于基于文档的部分内容进行搜索。
分布式搜索(elasticsearch)_第2张图片

3、es的一些概念
分布式搜索(elasticsearch)_第3张图片
在这里插入图片描述
分布式搜索(elasticsearch)_第4张图片
分布式搜索(elasticsearch)_第5张图片
分布式搜索(elasticsearch)_第6张图片

4、安装es、kibana
5、分词器
默认分词器:standard
中文分词器:chinese

中文分词推荐使用IK分词器:https://github.com/medcl/elasticsearch-analysis-ik/release
ik_smartik_max_word
分布式搜索(elasticsearch)_第7张图片
分布式搜索(elasticsearch)_第8张图片
分布式搜索(elasticsearch)_第9张图片
分布式搜索(elasticsearch)_第10张图片

二、索引库操作

1、mapping映射属性
分布式搜索(elasticsearch)_第11张图片
分布式搜索(elasticsearch)_第12张图片
分布式搜索(elasticsearch)_第13张图片
2、索引库的CRUD
分布式搜索(elasticsearch)_第14张图片
分布式搜索(elasticsearch)_第15张图片
分布式搜索(elasticsearch)_第16张图片

三、文档操作

1、新增文档
分布式搜索(elasticsearch)_第17张图片

2、查询文档
分布式搜索(elasticsearch)_第18张图片

3、删除文档
分布式搜索(elasticsearch)_第19张图片
4、修改文档
分布式搜索(elasticsearch)_第20张图片
分布式搜索(elasticsearch)_第21张图片

四、RestClient操作索引库

什么是RestClient?
  ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。
官网地址:https://www.elastic.co/guide/en/elasticsearch/client/index.html
分布式搜索(elasticsearch)_第22张图片
步骤一:导入课前资料
分布式搜索(elasticsearch)_第23张图片

分布式搜索(elasticsearch)_第24张图片
分布式搜索(elasticsearch)_第25张图片
分布式搜索(elasticsearch)_第26张图片
总结:
分布式搜索(elasticsearch)_第27张图片

五、RestClient操作文档

分布式搜索(elasticsearch)_第28张图片
分布式搜索(elasticsearch)_第29张图片
分布式搜索(elasticsearch)_第30张图片
分布式搜索(elasticsearch)_第31张图片
分布式搜索(elasticsearch)_第32张图片
分布式搜索(elasticsearch)_第33张图片
分布式搜索(elasticsearch)_第34张图片
批量操作
分布式搜索(elasticsearch)_第35张图片
分布式搜索(elasticsearch)_第36张图片
思考:
MySQL与Elasticsearch有什么差别呢?
Elasticsearch的文档操作API有什么样的规律?

六、DSL查询文档

官方文档:
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html
1、DSL查询分类
分布式搜索(elasticsearch)_第37张图片
分布式搜索(elasticsearch)_第38张图片
分布式搜索(elasticsearch)_第39张图片
2、全文检索查询
回对用户输入的内容分词,常用于搜索框搜索。
分布式搜索(elasticsearch)_第40张图片
在这里插入图片描述
3、精准查询
分布式搜索(elasticsearch)_第41张图片
分布式搜索(elasticsearch)_第42张图片
分布式搜索(elasticsearch)_第43张图片
4、地理坐标查询
分布式搜索(elasticsearch)_第44张图片
分布式搜索(elasticsearch)_第45张图片
5、组合查询
在这里插入图片描述
分布式搜索(elasticsearch)_第46张图片
分布式搜索(elasticsearch)_第47张图片
6、FunctionScoreQuery
分布式搜索(elasticsearch)_第48张图片
分布式搜索(elasticsearch)_第49张图片
分布式搜索(elasticsearch)_第50张图片
7、BooleanQuery
分布式搜索(elasticsearch)_第51张图片
分布式搜索(elasticsearch)_第52张图片
分布式搜索(elasticsearch)_第53张图片

七、搜索结果处理

1、排序
分布式搜索(elasticsearch)_第54张图片
**注意:**指定排序字段后,打分机制会失效。

2、分页
分布式搜索(elasticsearch)_第55张图片
分布式搜索(elasticsearch)_第56张图片
分布式搜索(elasticsearch)_第57张图片
分布式搜索(elasticsearch)_第58张图片

3、高亮
分布式搜索(elasticsearch)_第59张图片
分布式搜索(elasticsearch)_第60张图片

八、RestClient查询文档

private RestHighLevelClient client;

要构建查询条件,只要记住一个类:QueryBuilders
1、快速入门
分布式搜索(elasticsearch)_第61张图片
分布式搜索(elasticsearch)_第62张图片
分布式搜索(elasticsearch)_第63张图片
分布式搜索(elasticsearch)_第64张图片
分布式搜索(elasticsearch)_第65张图片
2、match查询
分布式搜索(elasticsearch)_第66张图片
3、精确查询
分布式搜索(elasticsearch)_第67张图片
4、复合查询
分布式搜索(elasticsearch)_第68张图片
5、排序、分页、高亮
分布式搜索(elasticsearch)_第69张图片
分布式搜索(elasticsearch)_第70张图片
分布式搜索(elasticsearch)_第71张图片
本文图片来自视频学习过程中所截,主要用于个人复习,视频来源:https://www.bilibili.com/video/BV1LQ4y127n4

你可能感兴趣的:(Java框架,Java,应用开发问题集,java,elasticsearch)