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却没有明显的变化

总结

  1. es基本是开箱即用,非常简单。而solr会有点复杂。

  2. Solr利用Zookeeper进行分布式管理,而elasticsearch自身带有分布式协调管理功能

  3. solr支持更多格式的数据,比如json xml csv。而es只支持json文件格式

  4. solr官方提供的功能更多,而elasticsearch更注重核心功能,高级功能由第三方插件提供

  5. solr查询快,但更新索引时慢,用于电商等查询多的应用

  6. es建立索引宽,即实时性查询快,用于facebook新浪等搜索

  7. solr较成熟,有一个更大,更成熟的用户、开发和贡献者社区,而elasticsearch相对开发维护者较少,更新太快,学习使用成本较高

Elasticsearch系列教程之ES介绍及与Solr对比相关推荐

  1. java jdbc 教程_java JDBC系列教程之JDBC类的简析与JDBC的基础操作

    什么是JDBC? 概念:JAVA Database Connectivity Javas数据库连接,Java语言操作数据库接口,然后由各个数据库厂商去实现这个接口,提供数据库驱动java包,我们可以使 ...

  2. 乐鑫代理-启明云端分享ESP32系列教程之二:Linux搭建esp-idf环境

    提示:此教程依据乐鑫官方的ESP32入门教程总结而来,仅供个人参考学学习,如有错误,欢迎批评指正.乐鑫官方参考: 乐鑫官方文档地址 1.搭建esp-idf环境 1.1安装虚拟机与Ubuntu 未安装请 ...

  3. 搜索引擎ElasticSearchV5.4.2系列一之ES介绍

    相关博文: 搜索引擎ElasticSearchV5.4.2系列一之ES介绍 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+kibanaV5.4.2+x- ...

  4. 10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10]

    10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10] 该系列主仓库地址:https://gitee.com/langcai1943/8051-from-boot-to-app ...

  5. MSP430FR6989系列教程之LCD

    MSP430FR6989系列教程之LCD 由于MSP430以追求低功耗的特性,所以在MSP430FR6989上搭载的LCD并不是我们通常意义上的LCD显示屏(TFT LCD),而是段式 LCD MSP ...

  6. 一步一步实现STM32-FOTA系列教程之FLASH静态区读写

    一步一步实现STM32-FOTA系列教程之FLASH静态区读写 文章系列链接 <一步一步实现STM32-FOTA系列教程之bin文件生成> <一步一步实现STM32-FOTA系列教程 ...

  7. 一步一步实现STM32-FOTA系列教程之Bootloader编写

    一步一步实现STM32-FOTA系列教程之Bootloader编写 文章系列链接 <一步一步实现STM32-FOTA系列教程之bin文件生成> <一步一步实现STM32-FOTA系列 ...

  8. 推荐系统系列教程之十:协同过滤中的相似度计算方法有哪些?

    编者按:之前推出了<推荐系统系列教程>,反响不错,前面已经推出了九期,今天按约推出第十期:协同过滤中的相似度计量方法有哪些?希望朋友们多点"在看",多多转发,我会在&q ...

  9. 【重磅推出】推荐系统系列教程之九:解密“看了又看”和“买了又买”(Item-Based)...

    编者按:之前推出了<推荐系统系列教程>,反响不错,前面已经推出了八期,今天按约推出第九期:解密"看了又看"和"买了又买"(基于物品的协同过滤).希望 ...

最新文章

  1. 分类算法-支持向量机(SVM)
  2. Jquery加载dom元素
  3. 艰难万苦配置postfix+ldap+extmail+.......
  4. Hi3516A开发--USB PCB 设计建议
  5. spring batch @EnableBatchProcessing作用
  6. oracle迁移mysql_从自建Oracle迁移至RDS MySQL
  7. 前端学java还是python_零基础应该选择学习 java、php、前端 还是 python?
  8. vb.net编写函数应该在哪里_编写代码时清晰至上
  9. 带修改离线主席树 + 树状数组 ZOJ - 2112【Dynamic Rankings】
  10. mysql查询名字重复四次以上的人名_怎么查询数据库中重复字段的名字
  11. AE zoom to selected 地图刷新
  12. ppt加载html5,当PPT遇见H5,这才是真爱!
  13. 万娟 白话大数据和机械学习_《白话大数据与机器学习》.pdf
  14. 药品计算机系统操作知识培训,新版GSP:计算机系统专业知识培训测试题(6)
  15. 苹果XR设备多次“跳票” XR行业的未来将如何
  16. 图片CenterCrop和圆角问题(Glide加载)
  17. html浏览器兼容性问题总结,常见的浏览器兼容性问题(小结)
  18. 关于毕业必须知道的知识之就业、派遣(1)
  19. 地图采集车的那些事 | 时间同步
  20. 地震预警信息接收服务器,震后9秒就发布信息 我省首次实现微博地震预警

热门文章

  1. 【转载】R语言与数据挖掘学习笔记
  2. VS2019+Fortran语言配置
  3. 串口Serial连接方式
  4. VUE 如何使用3DES加密
  5. 男生宿舍“卧谈”经典
  6. 记一次ThinkStation上Centos显卡驱动的大坑
  7. MSVC编译Boost库和使用
  8. [iOS] stringWithFormat 和 initWithFormat 有何不同?
  9. 买股评99元一年《雅戈尔600177 今天下午有2000万资金进场》
  10. 欧洲知名创业公司CEO的创业失败教训