Elasticsearch系列教程之ES介绍及与Solr对比
Elasticsearch介绍
ElasticSearch是一个开源的高拓展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用java开发并使用Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好、功能最全的搜索引擎库。但Lucene 仅仅只是一个库。为了充分发挥其功能,你需要使用 Java 并将 Lucene 直接集成到应用程序中。 更糟糕的是,您可能需要获得信息检索学位才能了解其工作原理。Lucene 非常 复杂。
Elasticsearch 也是使用 Java 编写的,它的内部使用 Lucene 做索引与搜索,但是它的目的是使全文检索变得简单, 通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API。
然而,Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎。 它可以被下面这样准确的形容:
一个分布式的实时文档存储,每个字段 可以被索引与搜索
一个分布式实时分析搜索引擎
能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
Elasticsearch 将所有的功能打包成一个单独的服务,这样你可以通过程序与它提供的简单的 RESTful API 进行通信, 可以使用自己喜欢的编程语言充当 web 客户端,甚至可以使用命令行(去充当这个客户端)。
就 Elasticsearch 而言,起步很简单。对于初学者来说,它预设了一些适当的默认值,并隐藏了复杂的搜索理论知识。 它 开箱即用 。只需最少的理解,你很快就能具有生产力。
随着你知识的积累,你可以利用 Elasticsearch 更多的高级特性,它的整个引擎是可配置并且灵活的。 从众多高级特性中,挑选恰当去修饰的 Elasticsearch,使它能解决你本地遇到的问题。
使用案例:
维基百科,类似百度百科,全文检索,高亮,搜索推荐
国外新闻网站,类似搜狐新闻,用户行为日志(点击,浏览,收藏,评论)+社交网络数据,数据分析。。。
Stack Overflow国外的程序异常讨论论坛
GitHub(开源代码管理),搜索上千亿行代码
电商网站,检索商品
日志数据分析,logstash采集日志,ES进行复杂的数据分析,ELK技术(elasticsearch+logstash+kibana)
商品价格监控网站
商业智能系统
站内搜索
官方文档:
Elasticsearch: 权威指南 | Elastic
Elasticsearch 与 Solr
Solr是Apache下的一个顶级开源项目,采用java开发,是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展、并对索引、搜索性能进行了优化。它可以独立运行,是一个独立的企业及搜索应用服务器,它对外提供类似于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系列教程之ES介绍及与Solr对比相关推荐
- java jdbc 教程_java JDBC系列教程之JDBC类的简析与JDBC的基础操作
什么是JDBC? 概念:JAVA Database Connectivity Javas数据库连接,Java语言操作数据库接口,然后由各个数据库厂商去实现这个接口,提供数据库驱动java包,我们可以使 ...
- 乐鑫代理-启明云端分享ESP32系列教程之二:Linux搭建esp-idf环境
提示:此教程依据乐鑫官方的ESP32入门教程总结而来,仅供个人参考学学习,如有错误,欢迎批评指正.乐鑫官方参考: 乐鑫官方文档地址 1.搭建esp-idf环境 1.1安装虚拟机与Ubuntu 未安装请 ...
- 搜索引擎ElasticSearchV5.4.2系列一之ES介绍
相关博文: 搜索引擎ElasticSearchV5.4.2系列一之ES介绍 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+kibanaV5.4.2+x- ...
- 10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10]
10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10] 该系列主仓库地址:https://gitee.com/langcai1943/8051-from-boot-to-app ...
- MSP430FR6989系列教程之LCD
MSP430FR6989系列教程之LCD 由于MSP430以追求低功耗的特性,所以在MSP430FR6989上搭载的LCD并不是我们通常意义上的LCD显示屏(TFT LCD),而是段式 LCD MSP ...
- 一步一步实现STM32-FOTA系列教程之FLASH静态区读写
一步一步实现STM32-FOTA系列教程之FLASH静态区读写 文章系列链接 <一步一步实现STM32-FOTA系列教程之bin文件生成> <一步一步实现STM32-FOTA系列教程 ...
- 一步一步实现STM32-FOTA系列教程之Bootloader编写
一步一步实现STM32-FOTA系列教程之Bootloader编写 文章系列链接 <一步一步实现STM32-FOTA系列教程之bin文件生成> <一步一步实现STM32-FOTA系列 ...
- 推荐系统系列教程之十:协同过滤中的相似度计算方法有哪些?
编者按:之前推出了<推荐系统系列教程>,反响不错,前面已经推出了九期,今天按约推出第十期:协同过滤中的相似度计量方法有哪些?希望朋友们多点"在看",多多转发,我会在&q ...
- 【重磅推出】推荐系统系列教程之九:解密“看了又看”和“买了又买”(Item-Based)...
编者按:之前推出了<推荐系统系列教程>,反响不错,前面已经推出了八期,今天按约推出第九期:解密"看了又看"和"买了又买"(基于物品的协同过滤).希望 ...
最新文章
- 分类算法-支持向量机(SVM)
- Jquery加载dom元素
- 艰难万苦配置postfix+ldap+extmail+.......
- Hi3516A开发--USB PCB 设计建议
- spring batch @EnableBatchProcessing作用
- oracle迁移mysql_从自建Oracle迁移至RDS MySQL
- 前端学java还是python_零基础应该选择学习 java、php、前端 还是 python?
- vb.net编写函数应该在哪里_编写代码时清晰至上
- 带修改离线主席树 + 树状数组 ZOJ - 2112【Dynamic Rankings】
- mysql查询名字重复四次以上的人名_怎么查询数据库中重复字段的名字
- AE zoom to selected 地图刷新
- ppt加载html5,当PPT遇见H5,这才是真爱!
- 万娟 白话大数据和机械学习_《白话大数据与机器学习》.pdf
- 药品计算机系统操作知识培训,新版GSP:计算机系统专业知识培训测试题(6)
- 苹果XR设备多次“跳票” XR行业的未来将如何
- 图片CenterCrop和圆角问题(Glide加载)
- html浏览器兼容性问题总结,常见的浏览器兼容性问题(小结)
- 关于毕业必须知道的知识之就业、派遣(1)
- 地图采集车的那些事 | 时间同步
- 地震预警信息接收服务器,震后9秒就发布信息 我省首次实现微博地震预警