ElasticSearch补充
(本文档由就业部老师提供)
一、Lucene与ElasticSearch1、 Lucene【lu:si:n】 1)Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该将信息检索程序库与搜索引擎相混淆。 2)是一个索引与搜索类库,而不是完整的程序。 3)是一套全文检索编程API,基于Lucene对数据建立索引,进行查询。 2、 ElasticSearch【ɪˈlæstɪk】【sɜ:rtʃ】 Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。 Solr搜索服务器
二、ElasticSearch在企业中主要作用1、 提高查询效率(最主要作用) 2、 存储查询数据 3、 分析用户查询习惯
三、ElasticSearch主要的应用场景 凡是数据量大的地方做搜索,都需要ElasticSearch或类似ElasticSearch的技术,比如淘宝搜索海量商品,大数据分析等。 1、站内搜索:主要和Solr 竞争,属于后起之秀。 2、NoSQL Json文档数据库:主要抢占 Mongo 的市场,它在读写性能上优于 Mongo ,同时也支持地理位置查询,还方便地理位置和文本混合查询。 3、监控:统计、日志类时间序的数据存储和分析、可视化,这方面是引领者。 4、国外:Wikipedia(维基百科)使用ES提供全文搜索并高亮关键字、StackOverflow(IT问答网站)结合全文搜索与地理位置查询、Github使用Elasticsearch检索1300亿行的代码。 5、国内:百度(在云分析、网盟、预测、文库、钱包、风控等业务上都应用了ES)、新浪、阿里巴巴、腾讯等公司均有对ES的使用。 6、使用比较广泛的平台ELK(ElasticSearch,Logstash, Kibana)。 Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。 Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX(Java Management Extensions,即Java管理扩展),它能够以多种方式输出数据,包括电子邮件、websocket和Elasticsearch。 Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据。
四、全文检索技术实现1、数据准备:它是指针对计划加载到全文数据库中的数据进行收集、整理、归类等预先处理的过程。加载到全文数据中的数据可以从多种途径获得,常见的数据来源有:电脑打字产生的文件,电子印刷产生的文稿,计算机网上传送的文件,电子出版物,图文处理产生的文件,专门组织人力录入建库。 2、文本预处理:包括规范格式,当格式多种多样时,应加以整理,使文献的格式规范化;批式标引,文本预处理阶段完成的批式标引,不受全文数据库结构的限制,效率较高。 3、数据加载:数据准备好以后,便可以加载(拷入、输入)到数据库文件中去了。加载数据可有单篇方式或批量方式。单篇方式一次加载一篇,适于平时文献随时加载的情况。批量方式一次加载多篇,适于集中大量加载的情况。 4、数据检索:数据库建立起来之后,便可根据全文检索系统提供的检索功能对数据库进行检索。 5、数据维护:全文数据建立以后,需要经常对数据库的内容进行索引、更新、追加和清理。 |