分布式搜索引擎(三) ES同类对比及设计理念

简介: ES同类对比及设计理念

ES和Lucene的区别

Lucene只支持java,ES支持多种语言

Lucene飞分布式,ES支持分布式

Lucene非分布式的,索引目录只能在项目本地,ES的索引库可以跨多个服务分区存储

Lucene使用非常复杂,ES屏蔽了Lucene的使用细节,操作更方便

单体/小项目使用lucene,大项目或者分布式项目使用ES

倒排索引的定义

倒排索引源于实际应用中根据属性的值来查找记录,这种索引表中的每一项都包括一个属性值和具有该属性值的各记录地址,由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因此被称为倒排索引,带有倒排索引的文件我们称之为倒排索引文件

ElasticSearch与Solr对比

Solr利用zookeeper进行分布式管理,而ElasticSearch自身带有分布式协调管理功能

Solr支持更多格式的数据,而Elasticsearch仅支持json文件格式

Solr官方提供的功能更多,而Elasticsearch本身更注重核心功能,高级功能多有第三方插件提供

Solr在传统的搜索应用中表现好于ElasticSearch,但在处理实时搜索应用时效率明显低于ElasticSearch

ElasticSearch的设计理念

ElasticSearch设计的理念就是分布式搜索引擎,底层其实还是基于Lucene的

核心思想是在多台机器上启动多个es进程实例,组成一个es集群,然后会生成一个索引,索引可以拆分成多个shard,每个shard存储部分数据

同时这个Shard的数据还有多个备份,就是说每个shard都有一个primay Shard,负责写入数据,但是还有几个replica Shard,primary Shard写入数据之后,会将数据同步到其他几个Replica Shard上去

通过replica的方案,每个shard的数据都有多个备份,如果某个机器宕机了,还有别的数据副本在别的机器上,可以提供高可用性

es集群有多个节点,会自动选举一个节点为master节点,这个master节点其实就是做一些管理工作,比如维护索引元数据,负责切换primary Shard和replica shard身份之类的

es中存储数据的基本单元是索引

如果master节点宕机了,那么就会重新选举一个节点为master节点,如果是非master节点当寄了,那么就会由master节点,让那个宕机节点上的primary shard的身份转移到其他机器上的replica Shard,当宕机节点修复之后,重启之后,master节点就会控制将确实的replica shard分配过去,同步后续修改的数据,让集群重新恢复正常

es主从节点的情况和kafka有点区别在于,es的primaryShard和replicaShard都可用来进行读操作,但是只有primaryShard可以写入数据

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
3月前
|
消息中间件 分布式计算 资源调度
《聊聊分布式》ZooKeeper与ZAB协议:分布式协调的核心引擎
ZooKeeper是一个开源的分布式协调服务,基于ZAB协议实现数据一致性,提供分布式锁、配置管理、领导者选举等核心功能,具有高可用、强一致和简单易用的特点,广泛应用于Kafka、Hadoop等大型分布式系统中。
|
6月前
|
人工智能 分布式计算 DataWorks
分布式×多模态:当ODPS为AI装上“时空穿梭”引擎
本文深入探讨了多模态数据处理的技术挑战与解决方案,重点介绍了基于阿里云ODPS的多模态数据处理平台架构与实战经验。通过Object Table与MaxFrame的结合,实现了高效的非结构化数据管理与分布式计算,显著提升了AI模型训练效率,并在工业质检、多媒体理解等场景中展现出卓越性能。
|
机器学习/深度学习 分布式计算 数据挖掘
MaxFrame 性能评测:阿里云MaxCompute上的分布式Pandas引擎
MaxFrame是一款兼容Pandas API的分布式数据分析工具,基于MaxCompute平台,极大提升了大规模数据处理效率。其核心优势在于结合了Pandas的易用性和MaxCompute的分布式计算能力,无需学习新编程模型即可处理海量数据。性能测试显示,在涉及`groupby`和`merge`等复杂操作时,MaxFrame相比本地Pandas有显著性能提升,最高可达9倍。适用于大规模数据分析、数据清洗、预处理及机器学习特征工程等场景。尽管存在网络延迟和资源消耗等问题,MaxFrame仍是处理TB级甚至PB级数据的理想选择。
280 6
|
存储 自然语言处理 搜索推荐
分布式搜索引擎ElasticSearch
Elasticsearch是一款强大的开源搜索引擎,用于快速搜索和数据分析。它在GitHub、电商搜索、百度搜索等场景中广泛应用。Elasticsearch是ELK(Elasticsearch、Logstash、Kibana)技术栈的核心,用于存储、搜索和分析数据。它基于Apache Lucene构建,提供分布式搜索能力。相比其他搜索引擎,如Solr,Elasticsearch更受欢迎。倒排索引是其高效搜索的关键,通过将词条与文档ID关联,实现快速模糊搜索,避免全表扫描。
719 87
|
自然语言处理 搜索推荐 数据库
高性能分布式搜索引擎Elasticsearch详解
高性能分布式搜索引擎Elasticsearch详解
384 4
高性能分布式搜索引擎Elasticsearch详解
|
存储 数据采集 分布式计算
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
264 1
|
存储 缓存 数据处理
深度解析:Hologres分布式存储引擎设计原理及其优化策略
【10月更文挑战第9天】在大数据时代,数据的规模和复杂性不断增加,这对数据库系统提出了更高的要求。传统的单机数据库难以应对海量数据处理的需求,而分布式数据库通过水平扩展提供了更好的解决方案。阿里云推出的Hologres是一个实时交互式分析服务,它结合了OLAP(在线分析处理)与OLTP(在线事务处理)的优势,能够在大规模数据集上提供低延迟的数据查询能力。本文将深入探讨Hologres分布式存储引擎的设计原理,并介绍一些关键的优化策略。
741 0
|
负载均衡 监控 搜索推荐
面试题ES问题之Solr和Elasticsearch在分布式管理上如何解决
面试题ES问题之Solr和Elasticsearch在分布式管理上如何解决
175 1
|
存储 搜索推荐 Java
微服务SpringCloud ES分布式全文搜索引擎简介 下载安装及简单操作入门
微服务SpringCloud ES分布式全文搜索引擎简介 下载安装及简单操作入门
399 2
|
5月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
410 2

热门文章

最新文章