Elasticsearch 是一个基于 Lucene 库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。Elasticsearch 是用 Java 开发的,并在 SSPL+Elastic License 许可证下作为开源软件发布。官方客户端在 Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby 和许多其他语言中都是可用的。
1.lucene
Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。
使用过程大概如下:
2. ES
Elasticsearch是一个基于Apache Lucene™的开源搜索引擎。
Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。
Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
Lucene是一套信息检索工具包,并不包含搜索引擎系统,它包含了索引结构、读写索引工具、相关性工具、排序等功能,因此在使用Lucene时仍需要关注搜索引擎系统,例如数据获取、解析、分词等方面的东西。而elasticsearch都是基于该工具包做的一些封装。
Elasticsearch不是什么新技术,主要是将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的ES。
(1)分布式的搜索引擎和数据分析引擎
搜索:百度,网站的站内搜索,IT系统的检索
数据分析:电商网站,最近7天牙膏这种商品销量排名前10的商家有哪些;新闻网站,最近1个月访问量排名前3的新闻版块是哪些
分布式,搜索,数据分析
(2)全文检索,结构化检索,数据分析
全文检索:我想搜索商品名称包含牙膏的商品,select * from products where product_name like "%牙膏%"
结构化检索:我想搜索商品分类为日化用品的商品都有哪些,select * from products where category_id='日化用品'
部分匹配、自动完成、搜索纠错、搜索推荐
数据分析:我们分析每一个商品分类下有多少个商品,select category_id,count(*) from products group by category_id
(3)对海量数据进行近实时的处理
分布式:ES自动可以将海量数据分散到多台服务器上去存储和检索
海量数据的处理:分布式以后,就可以采用大量的服务器去存储和检索数据,自然而然就可以实现海量数据的处理。
近实时:检索个数据要花费1小时(这就不要近实时,离线批处理,batch-processing);在秒级别对数据进行
搜索和分析,跟分布式/海量数据相反的:lucene,单机应用,只能在单台服务器上使用,最多只能处理单台服务器可以处理的数据量。
1.构建企业级搜索服务,比如电商系统,知识系统,日志分析等等
2,当你需要在大量数据之上,用到搜索分析的情况下,可以首先考虑下。
3.Elasticsearch具有广泛的应用场景,包括全文搜索、日志分析、运维监控、安全分析等。
ES 6.x版本推荐在一个index中尽量保持一个type。
ES是java源实现的,需要保障服务器有java运行环境。我当前使用的是Es8.4.1,ES依赖JDK,7以上的版本中会自带jdk。我们从下载的安装包里也能看到这点。
官网链接:免费且开放的搜索:Elasticsearch、ELK 和 Kibana 的开发者 | Elastic
但是,我点击后,闪退了。
这个问题不能理解,andriodSDK删除了,还是报这个错,我干脆把ES版本降到7.17.6
换版本后,再次遇到问题了。
SecurityNetty4HttpServerTransport] [DESKTOP-0QU7RUU] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/127.0.0.1:9200
这个解决后,访问:http://localhost:9200/
需要注意的是,ES8版本都需要输入用户名和密码。用户名是elastic,密码可以去启动日志中找到。我当前是7所以没有输密码的步骤。
能访问,说明启动成功。
为了方便学习ES,还可以安装postman,kibana工具。
postman:做开发的都知道接口测试工具
kibana:它是elk技术中的一员。可以轻松地来执行高级的数据分析,可以用丰富的图表对查询结果可视化演示。
下面主要说安装kibana:
下载地址:Download Kibana Free | Get Started Now | Elastic
需要下载与ES版本一致的kibana,至少大版本一致。
需要注意的是,再启动kibana前,一定要先启动ES。
kibana访问地址: