前言:
最近公司的业务有用到ElasticSearch,虽然说之前业余时间也自学过ElasticSearch技术,但是在公司实际的业务中开发中没有用过,再加上时间比较久远了,很多东西都忘记了,基于此我决定系统的重新学习一下这门技术,于是便有了该系列的文章。欢迎对此技术同样感兴趣的朋友点赞 + 评论 + 关注 + 转发!
特别说明:该系列的文章参考B站黑马程序员的教程而写,视频链接:
黑马Elasticsearch全套教程,含DSL查询语法、数据聚合、ES集合,最后配有黑马旅游网案例_哔哩哔哩_bilibili
一、了解ES
1.1、什么是elasticsearch
elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量的数据中快速找到需要的内容。
elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域。
elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。
1.2、elasticsearch的发展
Lucene是一个Java语言的搜索引擎类库,是Apache公司的顶级项目,由DougCutting于1999年研发。官网地址:https://lucene.apache.org/ 。
Lucene的优势:
(1)易扩展;
(2)高性能(基于倒排索引);
Lucene的缺点:
(1)只限于Java开发;
(2)学习曲线陡峭;
(3)不支持水平扩展;
2004年Shay Banon基于Lucene开发了Compass 2010年Shay Banon 重写Compass,取名为Elasticsearch。 官网地址: https://www.elastic.co/cn/ 目前最新的版本是:7.12.1 相比与lucene,elasticsearch具备下列优势:
(1)支持分布式,可水平扩展;
(2) 提供Restful接口,可被任何语言调用;
1.3、为什么学习elasticsearch
搜索引擎技术排名:
(1)Elasticsearch:开源的分布式搜索引擎;
(2)Splunk:商业项目;
(3)Solr:Apache的开源搜索引擎;
1.4、正向索引和倒排索引
1.5、文档
1.6、索引(Index)
1.7、映射(mapping)
索引中文档的字段约束信息,类似于表的结构约束。
1.8、概念对比
1.9、MySQL VS ElasticSearch
二、安装ElasticSearch、Kibana
2.1、Windows中安装
说明:学习阶段使用Windows版本的ES和Kibana即可,生产环境中会搭建ES集群,这里为了降低学习成本,使用Windows版本的ES即可。后续有时间再记录如何在Linux中安装ES!
安装步骤:
参考:Windows下安装Elasticsearch教程_elasticsearch windows搭建-CSDN博客
我分享的安装包:
链接:https://pan.baidu.com/s/1mhOLfwfeWvSqOUTYNVquZg?pwd=yyds
提取码:yyds效果:
2.2、Linux中安装(TODO)
三、分词器
3.1、ik分词器
处理中文分词,一般会使用IK分词器。官网:https://github.com/medcl/elasticsearch-analysis-ik
如何安装ik分词器可以参考Windows下安装Elasticsearch教程_elasticsearch windows搭建-CSDN博客
3.2、ik分词器的两种模式
ik_smart:最少切分,粗粒度
ik_max_word:最细切分,细粒度
3.3、ik分词器-拓展词库
3.4、ik分词器-停用词库
周立波