Elastic Search 小调研
一、概况:
Elastic Search 是一个基于Apache Lucene™工具包的开源搜索引擎。无论在开源还是专有领域,Lucene 可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。但是,Lucene 只是一个库。想要使用它,你必须使用 Java 来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene 非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。
Elastic Search 也使用 Java 开发并使用 Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTFul API 来隐藏 Lucene 的复杂性,从而让全文搜索变得简单。Elastic Search 不仅仅是 Lucene 和全文搜索,它还具有以下特性:
① 分布式的实时文件存储,每个字段都被索引并可被搜索
② 分布式的实时分析搜索引擎
③ 可以扩展到上百台服务器,处理 PB 级结构化和非结构化数据
由于 Elastic Search 具有能够实时搜索、开源、稳定、快速、支持分布式等众多优点,所以许多国外著名的公司都在使用 Elastic Search。维基百科(Wikipedia)、StackOverflow、Github 等公司的全文检索、关键词高亮、实时键入搜索、自动纠错、相关内容推荐等功能都是基于 ElasticSearch 实现的。除此之外,ElasticSearch 也备受创业公司的青睐,它对机器的性能没有较严苛的要求,即使在普通 PC 机组成的集群中也可以正常运行。
二、原理简介:
Elastic Search 结构示意图
在一个分布式Elastic Search集群中,有一个主节点(master),但是Elastic Search 是去中心化的,也就是说主节点是动态选举出来的,不存在单点故障的问题。节点与节点之间的通讯及节点之间的数据分配和平衡全部由Elastic Search 自动管理。Elastic Search 就是一个整体,主要有以下几个概念需要介绍一下。
Cluster:代表一个集群,集群中有多个节点。
节点(node):每一个运行实例都称为一个节点。所谓运行实例,也即是一个服务器进程。
Shards:索引分片,当面对海量数据时,其索引也会很大,因此我们需要把索引拆分成多个分片并将其分布在不同的节点上。这时我们在搜索海量数据时就可以实现分布式快速搜索了。
Replicas:索引副本,其作用是一方面提高系统的容错性,如果某个node 或者 Shards 不能工作了,Replicas 就可以快速恢复数据。另一方面,索引副本的存在还可以提高系统查询速度,因为 Elastic Search 具有负载均衡的功能,而索引副本可以代替索引分片进行搜索。
Recovery:代表数据恢复或者叫做数据重新分布,Elastic Search 可以重新分配索引分片以保证负载均衡。同时 Recovery 还可以自动恢复节点数据。
Gateway:代表着 Elastic Search索引快照存储方式,Elastic Search 默认是先把索引存放到内存中,当内存满了时再持久化到本地硬盘。gateway 对索引快照进行存储,当这个 Elastic Search 集群关闭再重新启动时就会从 gateway 中读取索引备份数据。
Transport:代表内部节点或集群与客户端交互的方式。
如上文所述,Elastic Search 内容检索集群还有如下几点优势:便捷的分布式安装部署,快速而强大的实时全文检索,能很好地融合 Hadoop 开发平台的存储集群。因此,这一分布式开源全文检索引擎框架成为许多大公司构建搜索引擎的首选。
Elastic Search 小调研的更多相关文章
- 深入分析Elastic Search的写入过程
摘要 之前写过一篇ElasticSearch初识之吐槽,不知觉竟然过去了两年了.哎,时光催人老啊.最近又用到了ES,想找找过去的总结文档,居然只有一篇,搞了半年的ES,遇到那么多的问题,产出只有这么点 ...
- Elastic Search快速上手(2):将数据存入ES
前言 在上手使用前,需要先了解一些基本的概念. 推荐 可以到 https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.htm ...
- elastic search&logstash&kibana 学习历程(一)es基础环境的搭建
elastic search 6.1.x 常用框架: 1.Lucene Apache下面的一个开源项目,高性能的.可扩展的工具库,提供搜索的基本架构: 如果开发人员需用使用的话,需用自己进行开发,成本 ...
- elastic search book [ ElasticSearch book es book]
谁在使用ELK 维基百科, github都使用 ELK (ElasticSearch es book) ElasticSearch入门 Elasticsearch入门,这一篇就够了==>http ...
- aws ec2 安装Elastic search 7.2.0 kibana 并配置 hanlp 分词插件
文章大纲 Elastic search & kibana & 分词器 安装 版本控制 下载地址 Elastic search安装 kibana 安装 分词器配置 Elastic sea ...
- 初识Elastic search—附《Elasticsearch权威指南—官方guide的译文》
本文作为Elastic search系列的开篇之作,简要介绍其简要历史.安装及基本概念和核心模块. 简史 Elastic search基于Lucene(信息检索引擎,ES里一个index—索引,一个索 ...
- 教你用Elastic Search:运行第一条Hello World搜索命令
摘要:Elastic Search可实时对数据库进行全文检索.处理同义词.从同样的数据中生成分析和聚合数据. 本文分享自华为云社区<Elastic Search入门(一): 简介,安装,运行第一 ...
- elastic search查询命令集合
Technorati 标签: elastic search,query,commands 基本查询:最简单的查询方式 query:{"term":{"title" ...
- elastic search 学习笔记
Elastic search在数据分析的应用中相当于一个数据库的搜索引擎. 跟MySQL类似,它有自己的查询语言,只不过不是关系型数据库,属于NoSQL. 可以根据索引从分布式服务器文件系统中快速存取 ...
随机推荐
- 在MyEclipse中更换或修改svn的用户名和密码
1.通过删除SVN客户端的账号配置文件 (1)找到我们使用的客户端配置文件,Windows XP中的位置是在系统盘的Documents and Settings\Administrator\A ...
- JNI Hello World
1.什么是JNI: JNI(Java Native Interface):java本地开发接口 JNI是一个协议,这个协议用来沟通java代码和 ...
- spring+springmvc+mybatis框架搭建
一.开发前准备 1)ecplise4.11.0 百度网盘:https://pan.baidu.com/s/1wO9_I52lp0mYNeNTdnj80w 提取码:booa 2)jdk1.6.0_45 ...
- 特种设备TSG 认证流程
特种设备许可,也叫安全注册(原为AZ安全注册认可),现为TS.国家为了防止和减少事故,保障人民群众生命和财产安全,促进经济发展而强制实施的安全监察.它的作用相当于欧盟的“CE”认证,但比“CE”认证更 ...
- leetcode-160周赛-5240-串联字符串的最大长度
题目描述: 自己的提交:O(2**n∗n∗m),m 为字符串长度 class Solution: def maxLength(self, arr: List[str]) -> int: from ...
- python3 投票
import urllib.request # cd C:\Python36-32\Scripts # pip install BeautifulSoup from bs4 import Beauti ...
- Confluence 6 站点备份和恢复
Atlassian 推荐针对生产环境中安装使用的 Confluence 使用原始数据库工具备份策略. 在默认的情况下,Confluence 每天都会备份所有数据和附件到 XML 文件备份中.这些文件被 ...
- 暴力字符串hash——cf1200E
#include<bits/stdc++.h> using namespace std; #define ll long long #define N 1000005 #define mo ...
- noip2002 普及组 过河卒
题目描述 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为"马拦过 ...
- jq鼠标移入和移出事件
前几天帮朋友做了一个单页面,其中有个效果就是鼠标移动到头像上变换头像样式,当鼠标移出时恢复头像样式.当时没多想,脑子就蹦出了mouseover,mouseout两个方法. 但是在编写页面的过程中,无论 ...