ElasticSearch 学习笔记(一) 基本概念与基本使用

发布时间:2024-10-17 09:01

一般我介绍某个框架、MQ、中间件,一般都是讲是啥,能帮助我们干啥,然后用起来,高级特性。这次打算换一种风格,穿插一些小故事。写到这篇的时候,我想起我刚入行的第一个项目,有一个页面查询,主表两百七十万条数据,join了七张表,第二张从表一百多万数据,剩余五张大概在四五十万条数据的上下,查询大概十几秒,这样的速度肯定是难以满足要求的,请DBA优化,优化到七秒,用户勉强可以接受了,我当时问带我的大哥,如果数据量再往上涨,更慢怎么办,我当时的大哥说,可以考虑ElasticSearch,ElasticSearch号称亿级数据,光速查询。

缘起

许多年前,一个刚结婚的名叫 Shay Banon 的失业开发者,跟着他的妻子去了伦敦,他的妻子在那里学习厨师。 在寻找一个赚钱的工作的时候,为了给他的妻子做一个食谱搜索引擎,他开始使用 Lucene 的一个早期版本。

直接使用 Lucene 是很难的,因此 Shay 开始做一个抽象层,Java 开发者使用它可以很简单的给他们的程序添加搜索功能。 他发布了他的第一个开源项目 Compass。

后来 Shay 获得了一份工作,主要是高性能,分布式环境下的内存数据网格。这个对于高性能,实时,分布式搜索引擎的需求尤为突出, 他决定重写 Compass,把它变为一个独立的服务并取名 Elasticsearch。

第一个公开版本在2010年2月发布,从此以后,Elasticsearch 已经成为了 Github 上最活跃的项目之一,他拥有超过300名 contributors(目前736名 contributors )。 一家公司已经开始围绕 Elasticsearch 提供商业服务,并开发新的特性,但是,Elasticsearch 将永远开源并对所有人可用。

据说,Shay 的妻子还在等着她的食谱搜索引擎… 《Elasticsearch: 权威指南》基于2.x 版本

那Lucene是啥,Lucene是一个全文搜索引擎库,属于Apache,全称为Apache Lucene,Luece可以说是当下最先进、高性能全功能的搜索引擎库, 但是Lucene仅仅只是一个库,使用起来比较复杂。Shay Banon构建了一个抽象层,试图对开发者屏蔽复杂细节,Java开发者使用它可以很简单的给他们的程序添加搜索功能,这也就是Compass,最后演变为ElasticSearch。

ElasticSearch 学习笔记(一) 基本概念与基本使用_第1张图片

全文搜索? 传统的数据库不行吗? 《ElasticSearch权威指南》给出的理由是:

不幸的是,大部分数据库在从你的数据中提取可用知识时出乎意料的低效。 当然,你可以通过时间戳或精确值进行过滤,但是它们能够全文检索、处理同义词、通过相关性给文档评分么? 它们能从同样的数据中生成分析与聚合数据吗?最重要的是,它们能实时地做到上述操作,而不经过大型批处理的任务么?

从上面的这句话我们可以提取的有效信息是,大部分关系数据不能够进行全文检索、处理同义词、通过相关性给文档进行评分。

  • 什么是全文检索(搜索)?

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号