用ElasticSearch搭建自己的搜索和分析引擎

导语:互联网产品中的检索功能随处可见。当你的项目规模是百度大搜|商搜或者微信公众号搜索这种体量的时候,自己开发一个搜索引擎,加入各种定制的需求和优化,是非常自然的事情。但如果只是普通的中小型项目甚至创业团队|创业项目,直接拿轮子则是更合理的选择。
ElasticSearch就是这样一个搜索引擎的轮子。更重要的是,除去常规的全文检索功能之外,它还具有基础的统计分析功能(最常见的就是聚合),这也让他变得更加强大和实用。
还在用数据库的像来实现产品的全文检索吗?抛弃她,用ElasticSearch吧~

,

ElasticSearch(下简称ES)是基于Lucene的一个开源搜索引擎产品.Lucene是Java编写的一套开源文档检索的基础库,包括词、文档,域,倒排索引,段,相关性得分等基本功能,而ES则是使用了这些库,搭建的一个可以直接拿来使用的搜索引擎产品。直观地理解,Lucene提供汽车零部件,而ES直接卖车。

,

说起ES的诞生,也是个很有意思的故事。的作者谢巴农——”几年前他还是一个待业工程师,跟随自己的新婚妻子来到伦敦。妻子想在伦敦学习做一名厨师,而自己则想为妻子开发一个方便搜索菜谱的应用,所以才接触到Lucene。直接使用Lucene构建搜索有很多问题,包含大量重复性的工作,所以谢便在Lucene的基础上不断地进行抽象,让Java程序嵌入搜索变得更容易,经过一段时间的打磨便诞生了他的第一个开源作品指南针,中文即“指南针”的意思,之后,谢找到了一份面对高性能分布式开发环境的新工作,在工作中他渐渐发现越来越需要一个易用的,高性能,实时,分布式搜索服务,于是他决定重写指南针,将它从一个库打造成了一个独立的服务器,并将其改名为ElasticSearch。”


,

可见鼓捣起来的程序员是多么有爱,虽然据说谢巴侬承诺给妻子的菜谱搜索还没问世……null

用ElasticSearch搭建自己的搜索和分析引擎