ElasticSearch :搜索(百度,github,淘宝电商的搜索等)
只要需要用到搜索,就可以使用ES( 建议大数据量的情况下使用)
Lucene是用JAVA写成的,目标是为各种中小型应用软件加入全文检索功能,好用且开源。
Lucene是一套信息检索工具包!jar包,不包含搜索引擎系统!
包含的:索引结构!读写索引的工具!排序,搜索规则…工具类!
Lucene和ElasticSearch关系:
ElasticSearch是基于Lucene做了一些封装和增强。
大数据两个问题:存储 + 计算
ElasticSearch概述
ElasticSearch,简称es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储,检索数据,本身扩展性很好,可以扩展到上百台服务器,处理PB(大数据时代)级别的数据。es也使用java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的Restful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
ELK技术, elasticsearch + logstash + kibana
ES和solr的差别
ElasticSearch简介
ElasticSearch是一个实施分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。它用于全文搜索、结构化搜索、分析以及将这三者混合使用:
维基百科使用es提供全文搜索并高亮关键字,以及输入实施搜索和搜索纠错等搜索建议功能;英国公报使用es结合用户日志和社交网络数据提供给他们的编辑以实施的反馈,以便了解公众对新发表的文章的回应。。。
es是一个基于Apache Lucene™的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好、功能最全的搜索引擎库。想要使用它,必须使用java来作为开发语言并将其直接继承到你的应用中。
solr简介
Solr是Apache下的一个顶级开源项目,采用java开发,是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展、并对索引、搜索性能进行了优化。它可以独立运行,运行在Jetty、 Tomcat等这些Servlet容器中,Solr索引的实现方法很简单,用POST方法向Solr服务器发送一个描述Field及其内容的XML文档, Solr根据xml文档添加、删除、更新索引。Solr搜索只需要发送Http Get请求,然后对Solr返回xml 、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。Solr是一个独立的企业及搜索应用服务器,它对外提供类似于web-service的API接口。用户可以通过http请求,像搜索引擎服务器提交一定格式的文件,生成索引;也可以通过提出查找请求,并得到返回结果。
两者比较
- 当单纯的对已有数据进行搜索时,Solr更快
- 当实时建立索引是,Solr会产生io阻塞,查询性能较差,ElasticSearch具有明显的优势
- 随着数据量的增加,Solr的搜索效率会变得更低,而Elasticsearch却没有明显的变化
总结
- es基本是开箱即用(解压就可以用),非常简单。而solr会有点复杂。
- Solr利用Zookeeper进行分布式管理,而elasticsearch自身带有分布式协调管理功能
- solr支持更多格式的数据,比如json xml csv。而es只支持json文件格式
- solr官方提供的功能更多,而elasticsearch更注重核心功能,高级功能由第三方插件提供
- solr查询快,但更新索引时慢,用于电商等查询多的应用
- es建立索引宽,即实时性查询快,用于facebook新浪等搜索
- solr较成熟,有一个更大,更成熟的用户、开发和贡献者社区,而elasticsearch相对开发维护者较少,更新太快,学习使用成本较高
ElasticSearch安装
注意:JDK1.8最低要求! 要安装ElasticSearch客户端,界面工具!
是基于Java开发的,ElasticSearch的版本和我们之后对应的java的核心jar包,版本要对应,JDK环境要是正常的!
官网:Elasticsearch:官方分布式搜索和分析引擎 | Elastic
下载网址:Download Elasticsearch Free | Get Started Now | Elastic | Elastic
ELK三剑客,解压即用!(web项目! 前端环境)
windows下安装
1.解压即可用
2.熟悉目录
bin 启动文件
config 配置文件
log4j2 日志配置文件
jvm,options java 虚拟机相关的配置
elasticsearch.yml elasticsearch 的配置文件! 默认9200端口
lib 相关jar包
logs 日志
modules 功能模块
plugins 插件
3启动:
4启动之后访问这个端口 127.0.0.1:9200
安装可视化界面es head的插件
1.下载地址:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster
2.安装:
cnpm install
启动:
npm run start
跨域:跨端口 跨网站 跨ip都是跨域
3.连接测试发现,存在跨域问题,配置es
解决跨域问题
http.cors.enabled: true #开启跨域支持
http.cors.allow-origin: "*" #并让所有人访问
yml配置文件修改后保存,然后重新启动elasticsearch.bat
然后重新访问127.0.0.1:9200,访问成功后,再访问elasticsearch-head点击连接选项查看控制台 连接成功没有错误
把索引当作数据库(可以建立索引(库),文档(库中的数据!))
这个head我们就把它当作数据展示工具,后面所有的查询都在Kibana中做。
B站学习网址:【狂神说Java】ElasticSearch7.6.x最新完整教程通俗易懂_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。