Elasticsearch与Solr选型

分布式搜索1-Solr与Elasticsearch的简介、比较和选择(吐血整理!) 一、Solr与Elasticsearch比较(综下所述,Solr的架构不适合实时搜索的应用) 1-单纯的对已有数据进行搜索时,Solr更快 2-随着数据量的增加,Solr的搜索效率会变得更低,而Elasticsearch却没有明显的变化 3-实时建立索引时, Solr会产生io阻塞,查询性能较差, Elasticsearch具有明显的优势 二、Solr与Elasticsearch的比较总结(Solr是传统搜索应用的有力解决方案,但Elasticsearch更适用于新兴的实时搜索应用) 1-二者安装都很简单 阅读详情

搜索引擎选型调研文档

Elasticsearch简介*


Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。

它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。

Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架。

但是Lucene只是一个框架,要充分利用它的功能,需要使用JAVA,并且在程序中集成Lucene。需要很多的学习了解,才能明白它是如何运行的,Lucene确实非常复杂。

Elasticsearch使用Lucene作为内部引擎,但是在使用它做全文搜索时,只需要使用统一开发好的API即可,而不需要了解其背后复杂的Lucene的运行原理。

当然Elasticsearch并不仅仅是Lucene这么简单,它不但包括了全文搜索功能,还可以进行以下工作:

分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。

实时分析的分布式搜索引擎。

可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。

这么多的功能被集成到一台服务器上,你可以轻松地通过客户端或者任何你喜欢的程序语言与ES的RESTful API进行交流。

Elasticsearch的上手是非常简单的。它附带了很多非常合理的默认值,这让初学者很好地避免一上手就要面对复杂的理论,

它安装好了就可以使用了,用很小的学习成本就可以变得很有生产力。

随着越学越深入,还可以利用Elasticsearch更多高级的功能,整个引擎可以很灵活地进行配置。可以根据自身需求来定制属于自己的Elasticsearch。

使用案例:

维基百科使用Elasticsearch来进行全文搜做并高亮显示关键词,以及提供search-as-you-type、did-you-mean等搜索建议功能。

英国卫报使用Elasticsearch来处理访客日志,以便能将公众对不同文章的反应实时地反馈给各位编辑。

StackOverflow将全文搜索与地理位置和相关信息进行结合,以提供more-like-this相关问题的展现。

GitHub使用Elasticsearch来检索超过1300亿行代码。

每天,Goldman Sachs使用它来处理5TB数据的索引,还有很多投行使用它来分析股票市场的变动。

但是Elasticsearch并不只是面向大型企业的,它还帮助了很多类似DataDog以及Klout的创业公司进行了功能的扩展。
Elasticsearch的优缺点**:
优点

Elasticsearch是分布式的。不需要其他组件,分发是实时的,被叫做”Push replication”。
Elasticsearch 完全支持 Apache Lucene 的接近实时的搜索。
处理多租户(multitenancy)不需要特殊配置,而Solr则需要更多的高级设置。
Elasticsearch 采用 Gateway 的概念,使得完备份更加简单。
各节点组成对等的网络结构,某些节点出现故障时会自动分配其他节点代替其进行工作。

缺点

只有一名开发者(当前Elasticsearch GitHub组织已经不只如此,已经有了相当活跃的维护者)
还不够自动(不适合当前新的Index Warmup API)

Solr简介*


Solr(读作“solar”)是Apache Lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理。Solr是高度可扩展的,并提供了分布式搜索和索引复制。Solr是最流行的企业级搜索引擎,Solr4 还增加了NoSQL支持。

Solr是用Java编写、运行在Servlet容器(如 Apache Tomcat 或Jetty)的一个独立的全文搜索服务器。 Solr采用了 Lucene Java 搜索库为核心的全文索引和搜索,并具有类似REST的HTTP/XML和JSON的API。Solr强大的外部配置功能使得无需进行Java编码,便可对 其进行调整以适应多种类型的应用程序。Solr有一个插件架构,以支持更多的高级定制。

因为2010年 Apache Lucene 和 Apache Solr 项目合并,两个项目是由同一个Apache软件基金会开发团队制作实现的。提到技术或产品时,Lucene/Solr或Solr/Lucene是一样的。
Solr的优缺点
优点

Solr有一个更大、更成熟的用户、开发和贡献者社区。
支持添加多种格式的索引,如:HTML、PDF、微软 Office 系列软件格式以及 JSON、XML、CSV 等纯文本格式。
Solr比较成熟、稳定。
不考虑建索引的同时进行搜索,速度更快。

缺点

建立索引时,搜索效率下降,实时索引搜索效率不高。

Elasticsearch与Solr的比较*

当单纯的对已有数据进行搜索时,Solr更快。
这里写图片描述
当实时建立索引时, Solr会产生io阻塞,查询性能较差, Elasticsearch具有明显的优势。
这里写图片描述
随着数据量的增加,Solr的搜索效率会变得更低,而Elasticsearch却没有明显的变化。
这里写图片描述
综上所述,Solr的架构不适合实时搜索的应用。


实际生产环境测试*

下图为将搜索引擎从Solr转到Elasticsearch以后的平均查询速度有了50倍的提升。
这里写图片描述
Elasticsearch 与 Solr 的比较总结

二者安装都很简单;
Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能;
Solr 支持更多格式的数据,而 Elasticsearch 仅支持json文件格式;
Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提供;
Solr 在传统的搜索应用中表现好于 Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch。

Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索应用。


其他基于Lucene的开源搜索引擎解决方案*


直接使用 Lucene

说明:Lucene 是一个 JAVA 搜索类库,它本身并不是一个完整的解决方案,需要额外的开发工作。

优点:成熟的解决方案,有很多的成功案例。apache 顶级项目,正在持续快速的进步。庞大而活跃的开发社区,大量的开发人员。它只是一个类库,有足够的定制和优化空间:经过简单定制,就可以满足绝大部分常见的需求;经过优化,可以支持 10亿+ 量级的搜索。

缺点:需要额外的开发工作。所有的扩展,分布式,可靠性等都需要自己实现;非实时,从建索引到可以搜索中间有一个时间延迟,而当前的“近实时”(Lucene Near Real Time search)搜索方案的可扩展性有待进一步完善

Katta

说明:基于 Lucene 的,支持分布式,可扩展,具有容错功能,准实时的搜索方案。

优点:开箱即用,可以与 Hadoop 配合实现分布式。具备扩展和容错机制。

缺点:只是搜索方案,建索引部分还是需要自己实现。在搜索功能上,只实现了最基本的需求。成功案例较少,项目的成熟度稍微差一些。因为需要支持分布式,对于一些复杂的查询需求,定制的难度会比较大。

Hadoop contrib/index

说明:Map/Reduce 模式的,分布式建索引方案,可以跟 Katta 配合使用。

优点:分布式建索引,具备可扩展性。

缺点:只是建索引方案,不包括搜索实现。工作在批处理模式,对实时搜索的支持不佳。

LinkedIn 的开源方案

说明:基于 Lucene 的一系列解决方案,包括 准实时搜索 zoie ,facet 搜索实现 bobo ,机器学习算法 decomposer ,摘要存储库 krati ,数据库模式包装 sensei 等等

优点:经过验证的解决方案,支持分布式,可扩展,丰富的功能实现

缺点:与 linkedin 公司的联系太紧密,可定制性比较差

Lucandra

说明:基于 Lucene,索引存在 cassandra 数据库中

优点:参考 cassandra 的优点

缺点:参考 cassandra 的缺点。另外,这只是一个 demo,没有经过大量验证

HBasene

说明:基于 Lucene,索引存在 HBase 数据库中

优点:参考 HBase 的优点

缺点:参考 HBase 的缺点。另外,在实现中,lucene terms 是存成行,但每个 term 对应的 posting lists 是以列的方式存储的。随着单个 term 的 posting lists 的增大,查询时的速度受到的影响会非常大


Solr与Elasticsearch:开源搜索引擎到底如何选择? 随着互联网行业的发展,搜索引擎已经深入到各行各业,已经是众多内容平台必不可少的功能。在实际业务中,当搜索的速度,性能和高可用性是核心要求时,对TB和PB的数据执行搜索可能会遇到挑战,此时就需要用到分布式全文检索。了解过搜索引擎的应该清楚,目前最热门的两款开源的搜索引擎,Solr和Elasticsearch都是非常不错的选择,但这两者应该如何选?是搜索新手面临的第一大问题。 它们都基于Apache Lucene构建,因此它们支持的功能非常相似。但是,它们在部署,可伸缩性,查询语言和许多其他功能方面有很大不同。 阅读详情

相关推荐

Solr与Elasticsearch 的对比与选型

Apache Solr 是一个基于 Apache Lucene 的企业级搜索平台,提供强大的全文检索功能,支持分布式搜索和索引。Solr 的核心特点包括丰富的功能、稳定性和高可扩展性。

码上飞扬的博客 2070

【十分钟入门Solr搜索引擎】从新手到高手的快速指南!

Solr搜索引擎一、什么是Solr?二 、数据库本身就支持搜索啊,干嘛还要搞个什么solr?三、如果我们想要使用solr那么首先我们得安装它2.solr官网3.解压后打开solr文件夹进bin目录,在地址框输入cmd 回车 此时弹出命令行4.输入solr.cmd start 命令开启solr服务5.看到下面这个界面说明solr安装成功啦!6.创建 **code** 核心并添加 **conf** 配置文件7.重启服务8.显示以下界面表示核心创建成功啦!9.一起来试试吧!10.查询成功 一、什么是Solr? 其

沁禹的博客 1万+

全文检索引擎Solr系列——入门篇

Solr采用Lucene搜索库为核心,提供全文索引和搜索开源企业平台,提供REST的HTTP/XML和JSON的API,如果你是Solr新手,那么就和我一起来入门吧!本教程以solr4.8作为测试环境,jdk版本需要1.7及以上版本。 准备 本文假设你对Java有初中级以上水平,因此不再介绍Java相关环境的配置。下载解压缩solr,在example目录有start.jar文件,启

yjl33的专栏 6081

Solr入门简介

1. Solr简介 前言 学习Solr需要一些和java相关的储备知识,在此之前,假设您已经: 拥有Java开发环境以及相应的IDE 熟悉Spring Boot 熟悉Maven 熟悉Lucene 如果大家是一名java开发工程师,我想大家有需求要学习Solr,应该上边的前3条要求都不是问题,至于为什么要学习Lucene呢? 因为Solr是基于Lucene开发的全文检索服务。也可以简单理解为,solr依赖于Lucene,是Lucene的一种封装。这个在后边也会详细介绍。 1.1 Solr 是什么 Sol

keller的博客 7450

【CarMaker实战指南】从零构建环形测试场景与车辆连续仿真

本文详细介绍了如何使用CarMaker软件从零构建环形测试场景与实现车辆连续仿真。通过分步指导搭建闭环道路、连接交叉路口、规划车辆轨迹等核心操作,帮助用户掌握CarMaker的基础应用技巧,并提供了常见问题排查与进阶优化建议,适用于车辆耐久性测试和自动驾驶算法验证等场景。

weixin_29274969的博客 234

AI产品经理必备:Agent评测维度、指标与工程化落地指南

随着大模型从单轮问答走向复杂的Agent应用,如何科学地评测一个Agent是否真正“办成了事”,成为AI产品经理必须掌握的核心能力。与传统大模型评测关注回答质量不同,Agent评测需要综合评估任务规划、工具调用、多轮对话一致性以及失败自愈等行为。任务完成率与工具调用成功率是最关键的两个量化指标,同时还需关注延迟与Token成本等工程约束。在实际落地中,评测集的设计要覆盖业务主流程与边界场景,并通过批量回归测试与版本对比,为产品选型、算法迭代和上线决策提供数据支持。本文系统拆解了Agent评测的完整流程,帮助

weixin_29057163的博客 340

Elasticsearch与Solr 选型

搜索引擎选择: Elasticsearch与Solr 搜索引擎选型调研文档 Elasticsearch简介* Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。 它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。 ...

俊俊的小熊饼干的博客 329

科研效率革命:Zotero与Web of Science联动实现千篇文献一键获取

本文详细介绍了如何利用Zotero与Web of Science联动实现科研文献的高效管理,包括批量导入、智能下载和自动整理千篇文献的技巧。通过精准检索、RIS文件导出和Zotero插件设置,科研人员可以大幅提升文献获取和管理的效率,特别适合开题报告和综述写作等场景。

weixin_29219539的博客 252

Elasticsearch vs Solr 全面对比:2025 最新选型指南

和Solr是目前全球最主流的两大开源全文检索引擎,均基于Lucene开发,核心检索能力同源,但在分布式架构、生态、易用性、运维成本、社区活跃度上有巨大差异。ES 和 Solr 到底有什么区别?新项目该选哪一个?高并发、大数据、微服务场景谁更强?本文从核心区别、架构、分布式、性能、生态、运维、选型建议全方位对比,用流程图、对比表、通俗总结让你一次性看懂,不再踩坑!天生分布式、开箱即用、生态强大、云原生、主流首选Solr传统检索引擎、功能全面、大数据结合好、部署复杂、社区衰退。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 2002

Arduino软串口实战:用TTL转RS485模块解决电机通信难题(附完整代码)

本文针对Arduino Uno硬串口与RS485半双工通信不兼容导致电机控制无响应的问题,提供了基于软串口(SoftwareSerial)的完整解决方案。详细讲解了TTL转RS485模块的选型、硬件连接避坑(推荐引脚8和7),并附带了完整的代码实现与调试指南,帮助开发者稳定实现Arduino与电机驱动器的RS485通信控制。

5f4d3s2a1q的博客 777

川崎机器人 AS语言基础运动指令表

    功能简介 动作方式 参考坐标系 位置特性 X,Y,Z 角度特性 O,A,T 指令格式(距离单位毫米,时间单位秒,角度单位度 示例1 示例2 运 动 指 令 JMOVE 以关节移动到目标点 关节移动方式 基础坐标系 不受控 伪随机动作 JMOVE 目标点 JMOVE #yd JMOVE put1 LMOVE 以直线移动到目标点 直线移动方式

喜欢自学并分享经验的技术宅 9345

Elasticsearch vs Solr 搜索引擎对比和选型

前言 全文搜索属于最常见的需求,开源的Elasticsearch是目前全文搜索引擎的首选。 基于Lucene它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都在采用它。 另一个选择是Solr,同样基于Lucene,Solr比ElasticSearch早几年面世,所以相对于Elasticsearch更成熟和稳定。 ElasticSear...

weixin_30606461的博客 737

SARScape实战:集成GACOS数据优化InSAR大气校正全流程

本文详细介绍了如何在SARScape软件中集成GACOS数据,以优化InSAR大气校正的全流程。通过实战步骤,从GACOS数据申请、下载、导入,到在单景干涉图和SBAS-InSAR流程中应用,有效剥离大气相位延迟,显著提升形变监测结果的精度与可靠性,实现从“雾里看花”到“拨云见日”的转变。

weixin_28419039的博客 397

【搜索引擎选型】Solr vs. Elasticsearch:怎么选?

结合了云,分析和认知搜索的观察结果Solr vs. Elasticsearch在我们的客户项目和企业搜索社区中经常讨论。但是,随着传统企业搜索已演变为Gartner所谓的“ Insight Engines”,我们重新讨论了该主题,以提供结合了Cloud,Analytics和Cognitive Search功能的最新观察结果,以帮助您评估Solr和Elasticsearch。通常,当我们帮助客户进行...

全网:架构师研究会 827

194、产线 Camera 校准与测试:终检测试项、规格线制定与量产数据监控

摘要: 文章通过"绿屏门"案例揭示了产线Camera校准测试中的关键问题,提出了系统性改进方案。在终检测试方面,建议增加多增益暗电流测试、混合光源色温测试和径向亮度梯度测试,覆盖用户真实场景。规格线制定强调用CPK替代固定百分比,区分硬软规格并建立动态调整机制。量产监控需关注参数趋势、边界模组分布,构建失效模式数据库。实践建议包括测试冗余设计、规格余量预留、自动化监控、供应商数据共享和人工抽检保留。文章指出Camera产线质量管控需形成"测试设计-规格优化-数据监控"闭环,以数据驱动决策避免客诉风险。

sundong_81的博客 191

HyperLynx(十四)高级分析技术

如果没有查找到该模型,可使用菜单命令“Setup”→“Options”→“Directories”,打开“Set Directories”对话框,单击“Edit”按钮,在“Select Directories for IC-Model Files”对话框中将路径“…在“Assign Models”对话框中的“Port”栏找到“OUTM”端口,在其对应的“Circuit Connection”栏中选择“txout”项。将端口R75连接到“Gnd”。同样,将“EMP”连接到“V”,完成预加重设置。...

小幽余生不加糖 4948

全文搜索终极对决:Elasticsearch与Solr核心选型指南

在信息爆炸的数字化时代,搜索引擎已经从“可选工具”演变为应用的。无论是电商商品检索、日志实时分析,还是AI驱动的语义搜索,选择正确的搜索引擎直接决定了业务响应速度、系统扩展成本和长期维护的复杂性。Elasticsearch和Apache Solr,这两个基于Apache Lucene构建的顶级开源搜索引擎,常被视为技术选型中的“Solr作为2004年诞生的老牌劲旅,承载了企业级搜索的稳定与厚重;而Elasticsearch自2010年问世以来,凭借“天生分布式”的基因,成为了实时分析与云原生时代的宠儿。

油墨香^-^的博客 596

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【搜索引擎选型】Solr vs. Elasticsearch:选择开源搜索引擎

结合了云,分析和认知搜索的观察结果Solr vs. Elasticsearch在我们的客户项目和企业搜索社区中经常讨论。但是,随着传统企业搜索已演变为Gartner所谓的“ Insight Engines”,我们重新讨论了该主题,以提供结合了Cloud,Analytics和Cognitive Search功能的最新观察结果,以帮助您评估Solr和Elasticsearch...

全网:架构师研究会 544

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

技术选型:Solr vs. Elasticsearch谁是开源搜索引擎王者

当前是云计算和数据快速增长的时代,今天的应用程序正以PB级和ZB级的速度生产数据,但人们依然在不停的追求更高更快的性能需求。随着数据的堆积,如何快速有效的搜索这些数据,成...

330

solr 与 elasticsearch 技术选型

solr vs elasticsearch

xiaojuge的博客 613

solr搜索服务器 性能,搜索引擎选型-ElasticSearch、Solr 和Sphinx比较

前言:众所周知,提供高效、快速的搜索功能能提高网站的运营利润和效率,如果网站搜索相关结果太低,用户体验差,那么用户将可能会使用竞争对手的网站。那么如何提供高效快速的搜索呢?当前大约有20种搜索引擎可以选择,如果您正在寻找可靠而有效的方案,那么我建议您使用Elasticsearch,Solr或Sphinx,这三个都是开源搜索解决方案,得到了他们的贡献者社区的充分支持。它们都具有高性能,可扩展性和灵活...

weixin_31978735的博客 1028

搜索引擎选择: Elasticsearch与Solr

搜索引擎选择: Elasticsearch与Solr 搜索引擎选型调研文档 Elasticsearch简介* Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。 它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。 Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,...

隔壁老瓦的专栏 466

【技术选型】Elasticsearch vs. Solr-选择您的开源搜索引擎

我们为什么在这里?我存在的目的是什么?我应该运动还是休息并节省能量?早起上班或晚起并整夜工作?我应该将炸薯条和番茄酱或蛋黄酱一起吃吗?这些都是古老的问题,可能有也可能没有答案。其中一些是非常困难或非常主观的。但是,让我付出一些努力来尝试回答其中之一:我应该使用Elasticsearch还是Solr?这是场景。您的组织正在寻求实现您的第一个搜索引擎,并切换到另一个搜索引擎-...

全网:架构师研究会 579

搜索引擎选择: Elasticsearch与Solr 搜索引擎选型调研文档

搜索引擎选择: Elasticsearch与Solr 搜索引擎选型调研文档 Elasticsearch简介* Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。 它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。 Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上...

airose的博客 145
上一篇: Repository模式
下一篇: Tomcat 9.0安装配置
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值