当前位置: 移动技术网 > IT编程>开发语言>Java > 快速掌握分布式搜索引擎ElasticSearch(一)

快速掌握分布式搜索引擎ElasticSearch(一)

2019年05月27日  | 移动技术网IT编程  | 我要评论

请与废柴的我谈恋爱10,房主网,劳拉失魂记

前言

由于最近在项目中接触使用到了elasticsearch,从本篇博客开始将给大家分享这款风靡全球的产品。将涉及到elasticsearch的安装、基础概念、基本用法、高级查询、中文分词器、与springboot集成进行接口开发等相关知识。

elasticsearch简述

如果大家接触过大数据的话,相信大家或多或少的听说过elk。elk是目前非常主流的用于网站监控,流量监控,日志监控,集中日志管理的一套解决方案。而elasticsearch如同elk的心脏一般,起到一个非常核心的作用。简单来说,logstash通过把日志收集到elasticsearch中,进行储存,kibana负责可视化的展现结果。

快速掌握分布式搜索引擎elasticsearch(一)

 

elk

说白了,elasticsearch就是一款大数据搜索引擎,那么在市面上还有哪些类似的产品呢?在java开源界的话,主要就是lucene、solr和elasticsearch了。

lucene,java领域的搜索引擎鼻祖,是一个比较底层的东西,需要深厚的搜索理论基础才可以掌握,比较复杂(它本身不是一个完整的解决方案,需要额外的开发工作)。因此,为了方便使用,屏蔽复杂性,solr和elasticsearch在lucene的基础上进行了二次开发。

solr相比elasticsearch而言拥有更加成熟的社区,比较稳定,但是随着数据量越来越大,对实时性要求越来越高,solr的搜索效率在下降,而elasticsearch却没有明显的变化。因此elasticsearch非常适合实时搜索的应用。(比如大名鼎鼎的github的站内实时搜索就在应用es)

另外,由于elasticsearch提供了简单易用的restful api,轻松的横向扩展机制(说白了,可以通过加机器来扩展容量),能支持pb级别的结构化或非结构化数据处理,具有强大的分布式储存能力。

 

elasticsearch的安装

安装比较简单,下载地址是:

https://www.elastic.co/cn/downloads/elasticsearch

下载后直接解压,运行即可。

快速掌握分布式搜索引擎elasticsearch(一)

 

运行es

快速掌握分布式搜索引擎elasticsearch(一)

 

默认启动端口9200

快速掌握分布式搜索引擎elasticsearch(一)

 

查看es启动状态

注意上面的方式是单实例的安装,那么分布式安装呢?

其实,对于分布式安装,无非注意下面几个配置要点:

指明谁是master,谁是slave,集群的名字,节点启动的端口(特别是在同一台机器上模拟分布式)。

几个重要的基础概念

索引,含有相同属性的文档集合。

类型,索引可以定义一个或者多个类型,文档必须属于一个类型。

文档,文档是可以被索引的基本数据单位。

看起来,比较绕,我们用类比的思路来理解:

快速掌握分布式搜索引擎elasticsearch(一)

 

类比理解

索引相当于database,类型相当于table,文档相当于一条记录,文档document是es里面最小的储存单位。需要注意的是索引在es中的名称必须是英文字母小写且不包含中划线。和索引相关的有2个高级概念,一个是分片,一个是备份。

分片:每个索引都有多个分片,每个分片是一个lucene索引。

备份:拷贝一个分片就完成了分片的备份。

假设索引的数据很大,就会造成硬盘的压力很大,同时搜索速度也会出现瓶颈。那么可以将索引分成多个分片,从而分摊压力。分片的同时,还可以允许用户进行水平扩展和拆分,进行分布式的储存,从而提高搜索的效率。

当一个主分片出现问题时,备份的分片可以代替工作,从而提高了es的可用性。

es在默认创建索引时,会创建5个分片,一个备份。

假设我们的es是一个master,2个slave,创建索引时,走的默认配置(5个分片,1个备份),那么图示如下:

快速掌握分布式搜索引擎elasticsearch(一)

 

分片和备份

图中标绿颜色的是主分片,其他是备份的分片。

创建es索引、类型

本文前面提到es提供了简单易用的restful api来操作索引/类型/文档,下面介绍下基本格式:

api基本格式 http://www.lhsxpumps.com/_ip:port/索引/类型/文档id

http常用方法 get/put/post/delete

下面,我们演示一下利用postman来创建一个索引和类型:

快速掌握分布式搜索引擎elasticsearch(一)

 

创建索引和类型

快速掌握分布式搜索引擎elasticsearch(一)

 

查询索引、类型信息

好了,本篇博客就介绍到这里,下一篇博客再来给大家介绍文档的增删改查操作等。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网