ElasticSearch搜索引擎简介


  • 项目组组长

    简介:ElasticSearch是一个基于Lucene(API风格)的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    特点:提供十分完整的搜索API,支持各种搜索方式(模糊匹配/精确匹配/包含检测…),搜索效率极高;但在产生新的Item时较为耗时、无法实现较高的实时性。

    简单的应用场景:
    ·用作主要的数据存储。
    基本可以将ES等效为一个Nosql的数据库。和mongodb以及亚马逊的dynamodb相比,ES在设计使用上还是略有差异。ES在生成一个Item时,需要耗费大量的时间,因为需要对加入的Item建立全字段的索引;虽然在新建的时候比较费事,但ES所带来的好处也是上面两个数据库无法比拟的。比如对于dynamodb而言,一个数据表最多只能建立5个索引,这在追求高性能的组合搜索面前显得十分无力;而ES由于是全字段索引,可以支持任意逻辑的组合搜索。具体的应用场景举个我之前开发用户反馈系统的例子,我们需要一个可以让客服给游戏用户自定义标签的功能,并且可以实现标签的组合搜索得到拥有这些标签的用户信息;在这种场景下,由于反馈用户数量很多,在搜索时需要用到索引来提高效率,而且每个用户的标签数并不固定。在这种需求下,dynamodb基本是无法实现的,需要用到ES这种强大的搜索引擎来辅助实现。

    ·和kibana配合使用。
    Kibana可以说是ES的可视化界面,其操作简单易懂,可供非技术人员使用。在游戏的日常运维过程中,我们会需要很多数据,这时候开发人员就可以将这些日常产生的用户信息/购买记录/异常情况等等加入到ES中,让负责运维、产品等非技术人员查看分析。这里同样举一个之前自己做过一些关于游戏反作弊系统的例子,目前很多游戏的管理方式都是先记录用户的各种行为和数据,再事后分析;由于在这种情况下不太要求实时性,使用ES来完成就成了首选,可以根据用户的客户端名称、版本、以及产生记录的时间等等来进行组合搜索,十分方便快捷。



  • 赞,开拓了视野!



  • xiaoyu大佬有研究过es的源码嘛,想听一波分析(自己懒得看源码



  • 还有哇,RESTful风格的借口到底是啥呀?一直看到一直没去研究


  • 项目组组长

    @realnumber es源码拿java写的,没看过,不太会java😄



  • @xiaoyu 嗷嗷酱紫,


  • 项目组组长

    @realnumber RESTful风格就是当前流行的一种浏览器API设计架构,基于HTTP协议,规范了多种形式的前端和同一个后台的交互方式


 

Copyright © 2018 bbs.dian.org.cn All rights reserved.

与 Dian 的连接断开,我们正在尝试重连,请耐心等待