在企业级项目中,如果需要完成数量级较大搜索服务,传统数据库搜索会显得力不从心,性能和速度达不到真实业务需求,一般我们都会使用全文检索技术来进行替代。
常见的全文检索技术有:Solr、Elasticsearch等。
Elastic 概述
Elastic官网:https://www.elastic.co/cn/
Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Elasticsearch 是由 Elastic 公司创建。目前,Elasticsearch 是一个开源项目。Elastic 公司也拥有 Logstash 及 Kibana 开源项目。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。Elasticsearch 处于最核心的位置,它可以帮我们对数据进行快速地搜索及分析。这个三个项目组合在一起,就形成了 ELK 技术栈。
1.ElasticSearch介绍与安装
1.1 为什么要用ElasticSearch
- 具有分布式本质特征:ElasticSearch是一个基于Lucene的搜索服务器,提供了一个分布式的全文搜索引擎。ElasticSearch分布特性使得它能够扩展数百台(甚至数千台)服务器,并处理PB量级数据。
- 是开源的:Elasticsearch是用Java开发的,基于RESTful web接口,一个开源项目。
- Elasticsearch是当前流行的企业级搜索引擎,能够达到实时搜索,且稳定,可靠,快速。
- 方便用户能够高效地址存储以及搜索数据。
- ELK 技术栈 简化了数据采集,可视化和报告过程。
当下,一些购物平台在我们的生活中已经占据了一定位置,当你在购物平台上想要搜索你所需商品,平台能够快速的将你所搜索相关商品信息返回给你,这种情况下,平台就可以使用ElasticSearch来存储整个产品目录和库存信息,为客户提供精准搜索,可以为客户推荐相关商品。
-
1.2 ElasticSearch用途有哪些
- 应用程序搜索
- 网站搜索
- 企业搜索
- 日志处理和分析
- 基础设施指标和容器监测
- 应用程序性能监测
- 地理空间数据分析和可视化
- 安全分析
- 业务分析
1.3 ElasticSearch安装与使用
- 启动成功后,绑定的端口
- 9300:集群节点间通讯接口
- 9200:客户端访问接口http://localhost:9200/
http://localhost:9200/
1.4ElasticSearch常见配置
1.4.1JVM参数
- Elasticsearch基于Lucene的,而Lucene底层是java实现,学习过程中,建议将jvm参数修改小一些。
- 修改 config/jvm.options
2. head服务安装与使用(可选)
2.1安装和启动head服务(查看elasticsearch索引工具)
- 安装(请查看1.3.1ElasticSearch安装详情)
- 访问head服务,查阅以后索引信息
http://localhost:8084/http://localhost:8084/
- 使用head进行分词测试
2.2 跨域问题:elasticsearch支持跨域
- 在elasticsearch的config目录下,修改elasticsearch.yml文件,添加跨域内容
#Cross domain
http.cors.enabled: true
http.cors.allow-origin: "*"
3.Kibana介绍
Kibana是一个开源的分析与可视化平台,基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图,线状图,饼图等。可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。
而且还提供了操作Elasticsearch索引数据的控制台,并且提供了一定的API提示,非常有利于我们学习使用Elasticsearch的语法。
-
3.1 Kibana安装和启动
- 安装(请查看1.3.1ElasticSearch安装详情)
- 双击 /bin/kibana.bat 进行启动
3.2 基本使用
- 点击左侧菜单“Dev Tools”就可以访问 ElasticSearch的控制台
以上便是ElasticSearch以及相关内容的安装与介绍~