ElasticSearch
版本:ElasticSearch 7.6.1
- 分词器 ik
- Restful草走
- CRUD
- SpringBoot集成
- 爬虫
- 实战,全文检索
Lucene 是一套信息检索工具包,不包含搜索引擎
包含:索引结构工具类。
Lucene 和 ElasticSearch 关系:
Els是基于Lucene 做了封装和增强。
概述
ES,开源的高扩展的分布式全文检索引擎,可以处理PB级别的数据,目的是通过RESTfulAPI来隐藏Lucene的复杂性,让全文搜索变得简单。
简介
实时分布式搜索和分析引擎,用于全文搜索,结构化搜索,分析。
对比solr
- 使用简单
- 索引增加solr会很慢
- es只支持json
- es维护很快更新快
- es更适合新兴的实时搜索系统
安装
jdk1.8最低要求,客户端,界面工具
华为云镜像下载
可视化界面:es head
界面工具跨域问题配置解决
1 | http.cors.enabled:true |
开始
ELK
elasticsearch、Logstash、Kibana也被称为Elastic Stack。
logstash提供数据源服务
kibana 可视化工具
概念
- 索引
- 字段类型
- 文档
倒排索引
采用Lucene倒排位为底层,适用于快速全文搜索。
不完全搜索全文关键字,获取所有索引(库)比较出现权重,过滤掉无关数据提高效率。es是由多个lucene的索引组合。
IK分词器插件
把一段中文划分成一个个关键字,组合分别搜索
下载ES的IK分词器插件解压到pulg文件下。
ik_smart ik_max_word
可以自己配置dlc文件。
RESTful风格操作
1 | Put testdb |
查询
should must_not must 查询条件
filter 查询过滤条件 gt:大于,gte:大于等于,lt:小于,lte:小于等于。
模糊查询tags,可用空格隔开,可以控制_score分权重。
精确查询,term 直接通过倒排索引指定词条惊醒精度查找。
关于分词:
- term,直接查询精确的
- match,会使用分词器解析
term:
- 匹配
- 按条件匹配
- 精确匹配
- 范围匹配
- 多条件查询
- 匹配字段过滤
集成Springboot
文档
客户端相关,Java Rest Client。
找maven依赖,使用完需要关闭client.close()。
pom自定义es版本,7.6.1,jdk1.8以上。
编写配置类
1 |
|
分析源码
xxxAutoConfigration xxxProperties
API
1 |
|
测试添加
1 | //创建对象 |
获取文档,判断是否存在 get
1 | //判断1号文档是否存在 |
获取文档信息
1 | GetRequest getRequest = new GetRequest("xxx",1); |
更新文档信息
1 | UpdateRequest updateRequest = new UpdateRequest("xxx","1"); |
特殊的,一般会批量插入数据
1 | BulkRequest bulkRequest = new B(); |
查询
1 | new SeachRequest.var; |
实战使用
解析网页jsoup
tika爬电影,音乐
1 | //获取请求 url |
(待完善。