热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

由于最近在项目中接触使用到了ElasticSearch,从本篇博客开始将给大家分享这款风靡全球的产品。将涉及到ElasticSearch的安装、基础概念、基本用法、高级查询、中文分

由于最近在项目中接触使用到了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://ip:port/索引/类型/文档id

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

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

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

 

创建索引和类型

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

 

查询索引、类型信息

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


推荐阅读
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • java之学习记录 92lecene 全文检索
    搭建springBoot项目依赖:<?xmlversion=1.0 ... [详细]
  • ElasticSearch基本概念阐述
    下面阐述一下ES当中的一些常见词语含义:集群集群由一个或多个节点组成,对外提供服务,索引和搜索功能。在所有的节点中,一个集群有一个唯一的名称默认为“ElasticSearch” ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • solr倒排索引(转载)
    原文地址:http:blog.csdn.netchichengitarticledetails9235157http:blog.csdn.netnjpjsoftdevarticle ... [详细]
  • javajigsaw2015年12月1日,星期二,在OpenJDK邮件列表中,MarkReinhold确认了许多人的期望:J ... [详细]
  • 双数组Trie树与AC自动机简要总结
    这部分的内容比较多,面面俱到不太现实,所以这里只是简单的概要描述,对需要了解的详细细节的 ... [详细]
  • 大二修完java的基础入门,发现自己对这门语言有兴趣,想深入自学,但是一方面不知道怎么深入,另一方面想了解我毕业后能找哪方面的工作。我不想做单纯的程序员,不想每天都是敲代码。所以请过来人帮忙解疑。 ... [详细]
  • Final关键字的含义及用法详解
    本文详细介绍了Java中final关键字的含义和用法。final关键字可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。文章还讨论了final类和final方法的应用场景,以及使用final方法的两个原因:锁定方法防止修改和提高执行效率。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
author-avatar
雪盈甜美
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有