RediSearch vs. Elasticsearch vs. solr

这篇具有很好参考价值的文章主要介绍了RediSearch vs. Elasticsearch vs. solr。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. RediSearch vs. Elasticsearch

RediSearch是一个分布式全文搜索和聚合引擎,作为Redis之上的一个模块构建。它使用户能够以极快的方式在Redis数据集上执行复杂的搜索查询。RediSearch的独特架构是用C编写的,从头开始构建在优化的数据结构上,使其成为市场上其他搜索引擎的真正替代品。它可以作为一个独立的搜索引擎进行索引和可搜索数据的检索。

当我们第一次推出RediSearch时,我们将其与Elasticsearch和Solr等流行搜索引擎进行了对比,以测试该引擎的强大程度。这一次,我们决定尝试一个稍微不同的基准,以便(a)为您提供一个清晰、可重复的设置,所有搜索引擎都经过优化,以提供最佳性能,并(b)根据我们从RediSearch用户那里看到的情况模拟多种现实生活场景。

基准

在这个搜索基准测试中,我们比较了RediSearch和Elasticsearch的两个用例:

  1. 索引和查询维基百科数据集
  2. 多租户环境中的快速索引

维基百科基准

我们首先从维基百科索引了560万个文档(5.3GB),然后在索引数据集上进行了两个单词的搜索查询。

索引结果

如下图所示,RediSearch用221秒建立索引,而Elasticsearch用349秒,速度快58%。
RediSearch vs. Elasticsearch vs. solr,工具,elasticsearch,solr,大数据

查询结果

数据集建立索引后,我们使用在专用负载生成器服务器上运行的32个客户端启动了两个单词的搜索查询。如下图所示,RediSearch的吞吐量达到了12.5K ops/sec,而Elasticsearch的吞吐量为3.1K op/sec,或快了x4。此外,RediSearch的延迟略好,平均为8秒,而Elasticsearch的延迟为10秒。

RediSearch vs. Elasticsearch vs. solr,工具,elasticsearch,solr,大数据

多租户索引基准

在这里,我们模拟了一个多租户电子商务应用程序,其中每个租户代表一个产品类别并维护自己的索引。对于这个基准,我们构建了5万个索引(或产品),每个索引最多存储500个文档(或项目),总共2500万个文档。RediSearch仅用201秒就建立了索引,同时平均每秒运行125K个索引。然而,Elasticsearch在921指数之后崩溃,显然并不是为了应对这种负载而设计的。
RediSearch vs. Elasticsearch vs. solr,工具,elasticsearch,solr,大数据

基准设置

硬件

RediSearch vs. Elasticsearch vs. solr,工具,elasticsearch,solr,大数据

数据源

RediSearch vs. Elasticsearch vs. solr,工具,elasticsearch,solr,大数据

RediSearch配置

RediSearch vs. Elasticsearch vs. solr,工具,elasticsearch,solr,大数据

Elasticsearch配置

RediSearch vs. Elasticsearch vs. solr,工具,elasticsearch,solr,大数据

版本
Name Value
RediSearch Version 1.4.3
Elasticsearch Version 6.6.0 with Lucene version 7.6.0
RediSearchBenchmark Benchmark code here

总结

我们为以下用例以RediSearch和Elasticsearch为基准:

  • 一个简单的维基百科用例——我们发现RediSearch在索引方面快了58%,在索引数据集上执行两个单词搜索时快了x4。
  • 一个更先进的多租户用例——RediSearch在201秒内创建了5万个索引,而Elasticsearch在创建了921个索引后崩溃。

Elasticsearch是由Elastic.co的伟人创建的一款功能丰富的搜索产品,但在性能方面,它存在固有的架构缺陷,如下表所示:

Component RediSearch Elasticsearch
搜索引擎 基于现代优化数据结构的专用引擎 基于Lucene引擎
编程语言 基于C语言,被极致优化过了 Java
存储技术 在DRAM和持久内存上本地运行 基于磁盘并带有缓存选项
协议 优化的RESP(REdis串行化协议) HTTP

2. Elasticsearch vs. solr

概述

在我们开始比较Elasticsearch和Solr之前,让我们简单定义一下它们是什么。
Elasticsearch是一个基于Apache Lucene的开源RESTful搜索引擎。它旨在处理大量数据,并提供近乎实时的搜索和分析功能。
Solr也是一个开源搜索平台,它也是建立在Lucene之上的。它旨在提供高速文本搜索、可扩展和容错的分布式搜索以及分面搜索功能。
既然我们知道了基本原理,让我们来比较一下这两者。

性能

在选择搜索平台时,最重要的考虑因素之一是性能。Elasticsearch和Solr都提供高速搜索和分析,但Elasticsearch无疑在几乎所有基准比较中都更快。事实上,在某些用例中,Elasticsearch比Solr快50%。Elasticsearch的高级缓存和巧妙的内存使用使其比Solr更具优势。

稳定性

Elasticsearch和Solr都是可扩展的,可以处理大量数据,但Elasticsearch的构建考虑到了可扩展性。Elasticsearch使用开箱即用的分布式架构,这意味着您可以通过添加更多节点来轻松地横向扩展集群。另一方面,Solr需要一些额外的配置来扩展。从这个意义上说,在可伸缩性方面,Elasticsearch显然是赢家。

搜索能力

Elasticsearch和Solr都擅长搜索,但它们对搜索的处理方式不同。Elasticsearch的搜索引擎是为结构化和非结构化搜索而构建的,而Solr更专注于文本搜索。Elasticsearch的DSL(领域特定语言)允许更复杂的查询生成器,而Solr的查询语法可能提供的灵活性较小。Elasticsearch还为搜索大型数据集提供了更好的聚合支持。

易用性

最后,易用性是一个重要的考虑因素。如果你习惯于使用Lucene,Solr将是两者中更容易学习的一个。另一方面,与Solr相比,Elasticsearch的学习曲线更陡。Elasticsearch拥有更全面的API。

结论

那么,你应该选择哪一个呢?和大多数事情一样,这取决于你的具体需求。如果你需要闪电般的搜索、可扩展性,并且有学习新技术的诀窍,Elasticsearch可能是一个更好的选择。如果您对文本搜索更感兴趣,并且已经熟悉Lucene,Solr可能是更好的选择。

参考1
参考2文章来源地址https://www.toymoban.com/news/detail-788107.html

到了这里,关于RediSearch vs. Elasticsearch vs. solr的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【技术选型】Elasticsearch 和Solr那个香?

    我们为什么在这里?我存在的目的是什么?我应该运动还是休息并节省能量?早起上班或晚起并整夜工作?我应该将炸薯条和番茄酱或蛋黄酱一起吃吗? 这些都是古老的问题,可能有也可能没有答案。其中一些是非常困难或非常主观的。但是,让我付出一些努力来尝试回答其

    2024年02月08日
    浏览(37)
  • 高可用的搜索引擎:Elasticsearch与Solr对比

    搜索引擎是现代互联网的基石,它使得我们可以在海量数据中快速找到所需的信息。高可用性是搜索引擎的核心需求,因为用户对于搜索结果的实时性和准确性有很高的要求。Elasticsearch和Solr是两个流行的搜索引擎,它们各自具有独特的优势和特点。在本文中,我们将对比这

    2024年02月20日
    浏览(28)
  • Lucene轻量级搜索引擎,Solr 和 ElasticSearch 都是基于 Lucene 的封装

    1、Lucene 是什么 Lucene 是一个本地全文搜索引擎,Solr 和 ElasticSearch 都是基于 Lucene 的封装 Lucene 适合那种轻量级的全文搜索,我就是服务器资源不够,如果上 ES 的话会很占用服务器资源,所有就选择了 Lucene 搜索引擎 2、倒排索引原理 全文搜索的原理是使用了倒排索引,那么什么是倒

    2024年03月15日
    浏览(58)
  • 《Spring Boot 实战派》--13.集成NoSQL数据库,实现Elasticsearch和Solr搜索引擎

             关于搜索引擎 我们很难实现 Elasticseach 和 Solr两大搜索框架的效果;所以本章针对两大搜索框架,非常详细地讲解 它们的原理和具体使用方法, 首先 介绍什么是搜索引擎 、如何用 MySQL实现简单的搜索引擎,以及Elasticseach 的 概念和接口类; 然后介绍Elasticseach

    2023年04月09日
    浏览(77)
  • ClickHouse/Doris vs Elasticsearch谁更胜一筹?

    我之前在ClickHouse vs Doris 读写性能比较 一文中,初步做了一下ClickHouse和Doris的读写性能比较,但由于数据样本比较小,且未发挥出所有硬件资源的性能,因此进行了第二轮压测。 本轮压测与上一轮的区别在于: 新加入了Elasticsearch搜索引擎 ClickHouse和Doris均采用多并发写入,发

    2024年01月22日
    浏览(38)
  • 「从ES到CK 01」Elasticsearch vs Clickhouse

            在完成将公司日志数据从Elasticsearch(下称ES)转战到Clickhouse后,个人认为有必要将过程记录分享。限于篇幅及便于分类组织,我会以一个系列文章的形式记录: 01 《Elasticsearch vs Clickhouse》 02 《Clickhouse的基础知识扫盲》 03 《​Clickhouse多分片多副本集群部署​》 04

    2024年02月04日
    浏览(30)
  • Elasticsearch:RAG vs Fine-tunning (大语言模型微调)

    如果你对 RAG 还不是很熟悉的话,请阅读之前的文章 “Elasticsearch:什么是检索增强生成 - RAG?”。你可以阅读文章 “Elasticsearch:在你的数据上训练大型语言模型 (LLM)” 来了解更多关于如何训练你的模型。在今天的文章中,我们来讲述 RAG 及 大语言模型的优缺点。这篇文章旨

    2024年02月04日
    浏览(41)
  • Elasticsearch:Text vs. Keyword - 它们之间的差异以及它们的行为方式

    很多刚开始学习 Elasticsearch 的人经常会混淆 text 和 keyword 字段数据类型。 它们之间的区别很简单,但非常关键。 在本文中,我将讨论两者之间的区别、如何使用它们、它们的行为方式以及使用哪一种。 它们之间的关键区别在于,Elasticsearch 会在将 text 存储到倒排索引之前对

    2024年02月03日
    浏览(52)
  • win下安装 Elasticsearch与Elasticsearch可视化工具

    目录 1 安装Elasticsearch(简称ES) 2 下载ES的可视化工具 在这里下载——》官方下载地址 Elasticsearch 7.10.1 | Elastic 对应的版本JAVA版本如下图 注意ES7.1只支持springboot 2.4及其以上的版本  ,并且依赖于JDK11(JAVA11)及其以上JDK的版本,需要升级JAVA版本的可以查看这篇文章的。 Windows从j

    2024年02月06日
    浏览(35)
  • ElasticSearch可视化工具:kibana + elasticsearch-head

    kibana 下载 地址:https://www.elastic.co/cn/downloads/kibana 下载别的版本:https://www.elastic.co/cn/downloads/past-releases#kibana 将Kibana安装包解压缩 进入config目录,在kibana.yml中添加es服务器地址。(如果之前没有动es的端口,修改kibana配置省略即可) 双击bin目录下的kibana.bat文件 报错 Kibana(

    2024年04月24日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包