ElasticSearch 与 Solr 的对比测试

本文从两个方面对ElasticSearch和Solr进行对比,从关系型数据库中的导入速度和模糊查询的速度。

 

 


单机对比

1. Solr 发布了4.0-alpha,试了一下,发现需要自己修改schema,好处是它自带一个data importer。在自己的计算机上测试了一下,导入的性能大概是:14分钟导入 3092730  条记录,约合 3682条/秒。

2. 3百万条记录的情况下,模糊查询和排序基本都在1秒内返回

3. 刚才的测试,是每个field单独存储,现在修改了一下配置文件,增加了一个copyField,所有的field都拷贝一份到text这个field里面去,导入的性能大概是:19分钟导入了3092730 条记录,约合 2713/

4. 3百万条记录的情况下,针对text的模糊查询基本在1秒内返回,但是针对所有记录的排序,大概要2~3

5. 使用 elasticsearch 0.19.8,缺省配置,用单任务导入,导入性能是:20分钟导入了3092730 条记录,约合2577/

6. 3百万条记录的情况下,查询基本上在1秒内返回,但是模糊查询比较慢,第一次要10秒,后来大概要1~3秒。加上排序大概需要5秒,整体排序基本100ms

查询及排序的指令:

{

  "query": {

    "query_string": {

      "query": "*999*"

    }

  },

  "sort": [

    {

      "TIME_UP": {

        "order": "asc"

      }

    }

  ]

}

 

7. Es0.19.8,用两个任务导入,导入性能是:13分钟导入了3092730 条记录,约合3965/

8. Solr全部建好索引后,占用磁盘空间是1.2Ges占用磁盘空间是4G

 

单机对比2

在一台Intel i732G内存的机器上,重新跑这两个的对比。不过有个重大的区别在于,Solr是在这台性能很好的机器上跑,而es的导入进程则是在一台Intel 四核 2.5G4G内存的机器上跑的,也许会有性能的差异。ES版本0.19.8Solr版本4.0-ALPHA

1. Solr的导入性能:3400万条记录,用时62分钟,平均9140/秒,占用空间12.75G

2. 使用 *999* 这样的模糊查询,3秒以内返回,稍长一点的查询条件 *00100014*,也是2~3秒返回

3. Es的导入性能(设置Xmx10G):3400万条记录,用时40分钟,平均14167/秒,占用空间33.26G,客户端采用4个并发。

4. 使用 *999* 这样的模糊查询,9秒返回,稍长一点的查询条件 *00100014*11.8秒返回

5. 如果不是针对所有字段查询,而是针对某个特定字段,比如 SAM_CODE: *00100014*,那么也是1秒以内返回。

6. 结论:es的查询效率也可以很高,只是我们还不会用。

7. 结论2es有个设置是把所有字段放一块的那个,缺省是放一起,但是不知道为什么没起到应有的作用。

 

备注:

1. Solr第一次的那个内存使用的是缺省设置,这次改为10G,结果导入性能反而变差了,400万条记录,用了8分钟,平均8333/秒,不知道为什么。

2. 改回缺省的内存配置,导入速度仍然慢。

3. 重启Linux,用10G的内存配置,再导入,5030万条记录,用时92分,约9112/秒,说明导入速度和内存配置没有大差别

4. 10G配置的情况下,检索速度也差别不大。

5. 为了搞清楚lucene4.0solr4.0的进步有多大,下载了solr3.6.1,所幸的是4.0的配置文件在3.6.1上也可以用,所以很快就搭起来进行测试,导入性能为:3400万条记录,用时55分钟,约10303/秒,占用空间13.85G。查询性能:*999*第一次11.6s*00100014*  27.3s,相比4.0ALPHA的结果(5000万结果当中,*999*第一次2.6s*00100014*第一次2.5s)来说,慢了很多,与es的性能差不多,因此,也许lucene4.0真的对性能有大幅提升?

 

集群对比:

采用4台同样配置(Intel i732G内存)的Centos 6.3组成的集群,进行对比。

1. 首先是es,很方便的就组成了一个Cluster,等上一个3400万条的Index全部均衡负载之后进行测试,导入到另外一个Index当中。

2. 导入性能:8500万条记录,用时72分钟,约为19676/秒。在前5千万条记录导入时的速度在2/条以上,初始的速度在2.2/条。占用空间78.6G(由于有冗余,实际占用空间为157.2G

3. 查询性能:

*999*第一次13.5秒,第二次19.5秒,第三次7.4秒,第四次7.1秒,第五次7.1

*00100014*第一次17.2秒,第二次16.6秒,第三次17.9秒,第四次16.7秒,第五次17.1

SAM_CODE:*999*,0.8s1.3s0.02s0.02s0.02s

SAM_CODE: *00100014*0.1s0.1s0.02s0.03s0.05s

4. Solr4.0-ALPHA,SolrCloud的配置还算简单,启动一个ZooKeeper,然后其他三台机器访问这个地址,就可以组成一个Cloud

机器1: nohup java -Xms10G -Xmx10G -Xss256k -Djetty.port=8983 -Dsolr.solr.home="./example-DIH/solr/" -Dbootstrap_confdir=./example-DIH/solr/db/conf/ -Dcollection.configName=xabconf3 -DzkRun -DnumShards=4 -jar start.jar &

其他机器:nohup java -Xms10G -Xmx10G -Dsolr.solr.home="./example-DIH/solr/" -DzkHost=192.168.2.11:9983 -jar start.jar &

 

但是在执行 data import 的时候,频繁出现 OutOfMemoryError: unable to create new native thread。查了很多资料,把Linuxulimit当中的nproc改成10240,把Xss改成256K,都解决不了问题。暂时没有办法进行。

 

 

结论

1. 导入性能,es更强

2. 查询性能,solr 4.0最好,essolr 3.6持平,可以乐观的认为,等es采用了lucene4之后,性能会有质的提升

3. Es采用SAM_CODE这样的查询性能很好,但是用_all性能就很差,而且差别非常大,因此,个人认为在目前的es情况下,仍然有性能提升的空间,只是现在还没找到方法。

 

更新:

刚才搜到了Solr的OOM错误,是一个尚未解决的issue: https://issues.apache.org/jira/browse/SOLR-3658

 

 

手把手教你用XC7A35T FPGA搭建低成本机器视觉系统(含开发板选型指南) 本文详细介绍了如何利用AMD(原Xilinx)Artix-7系列中的XC7A35T FPGA芯片,搭建一套低成本的机器视觉系统。内容涵盖从芯片选型深度剖析、开发板(如黑金AX7035B)对比指南,到使用Vivado创建工程、编写图像处理模块(如RGB转灰度),以及资源优化和上位机(如OpenCV)协同工作的完整流程,旨在为开发者提供一套可实践的高性价比硬件加速视觉解决方案。 阅读详情

相关推荐

大数据索引架构:ElasticsearchSolr性能对比

随着企业数据量从TB级向PB级跃迁,传统数据库的检索能力已难以满足复杂查询需求(如模糊搜索、多条件过滤、聚合分析)。ElasticsearchSolr作为基于Apache Lucene的分布式搜索框架,被广泛应用于日志分析、电商搜索、企业级知识库等场景。本文聚焦两者的核心架构差异性能表现,覆盖索引构建、查询处理、分布式特性、资源消耗等关键维度,帮助技术团队在实际选型中权衡。核心概念:解析ElasticsearchSolr的架构设计;原理对比:从索引构建、查询处理、实时性等维度展开技术原理分析;

AI架构师小马 1324

关于elasticsearch的一些问题总结

1.什么是elasticsearch?    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。-----百度百科2.为什么会...

weixin_41768263的博客 9733

python基于自然语言处理技术的话题文本分类

人们想要从网络上快速准确的获取有用的信息却变得越来越困难。以网络的新闻热点为例,现在网络中的新闻内容繁杂,涉及的内容方向复杂多样,在这样一种环境下,对于话题的分类需求十分迫切。对于热点新闻的话题处理、信息跟踪识别等需要有强大的计算机支持,才能够对信息的分类做到准确。目前,文本的分类依然是话题处理过程中非常重要的一个环节,在话题分类环节中,需要通过提高文本分类的性能,从而实现对热点话题的任务进行有效分类的目的。而自然语言在对于文本分类的应用上有着非常强大的分类效果,是现在常用的一种分类方式。 本次就是结合了python技术来搭建一款基于自然语言的话题分类网站,在该网站中通过搜索相关的信息关键词就可以查找到具体的新闻内容,并且可以实现对新闻的评分和阅读等操作。此次设计是对文本话题分类的一次有效的尝试,对于当下复杂的网络信息环境下,进行有效的分类可以提高对信息的查找准确度,对于信息的过滤有着非常重要的作用。关键词:自然语言;话题分类;python语言

高可用的搜索引擎:ElasticsearchSolr对比

1.背景介绍 搜索引擎是现代互联网的基石,它使得我们可以在海量数据中快速找到所需的信息。高可用性是搜索引擎的核心需求,因为用户对于搜索结果的实时性和准确性有很高的要求。ElasticsearchSolr是两个流行的搜索引擎,它们各自具有独特的优势和特点。在本文中,我们将对比这两个搜索引擎的核心概念、算法原理、实例代码等方面,以帮助读者更好地理解它们的优缺点,并为选择合适的搜索引擎提供参考。 ...

AI天才研究院 2717

Solr Elasticsearch对比选型

一、Elasticsearch特性 1.1 安装管理方便 Elasticsearch没有其他依赖,下载后安装非常方便;只用修改几个参数就可以搭建起来一个集群。 1.2 大规模分布式 Elasticsearch允许你开始小规模使用,但是随着你使用数据的增长,它可以建立在横向扩展的开箱即用。当你需要更多的容量,只需添加更多的节点,并让集群重组,只需要增加额外的硬件,让集群自动利用额外的硬件。 可以在...

jetty_welcome的博客 3106

ES(ElasticSearch)和solr的比较

ES(ElasticSearchElasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。它用于全文搜索、结构化搜索、分析以及将这三者混合使用︰ 维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-asyou-type)和搜索纠错(did-you-mean)等搜索建议功能。 英国卫报使用Elasticsearch结合用户日志和社交网络数据提供给他们的编辑以实时的反馈,以便及时了解公众对新发表的文章的回应。 Stack

jj89929665的博客 8462

ElasticsearchSolr的区别

Elasticsearch(ES)和Solr都是基于Apache Lucene的开源搜索引擎,它们在许多方面相似,但也存在一些关键区别。

Made In SQL 1574

Elasticsearch vs Solr vs OpenSearch深度对比:架构哲学、分词机制日志场景实战指南

Elasticsearch分片策略。是否需要实时数据分析?

燃灯工作室 1430

搜索引擎选择: ElasticsearchSolr

Elasticsearch简介* Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。 它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。 Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架。

球球之家 670

Elasticsearch学习(一)-引言和安装

Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别(大数据时代)的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。据国际权威的数据库产品评测机构DB E......

qq_44128703的博客 220

【迅搜01】安装运行并测试XunSearch

安装运行并测试XunSearch这回的新系列,我们将学习到的是一个搜索引擎 迅搜 XunSearch 的使用。这个搜索引擎在 PHP 圈可能还是有一点名气的,而且也是一直在更新的,虽说现在 ElasticSearch 已经是实际上的搜索引擎霸主了,而且还有 Solr 在后的不断追赶,但要说最简单、最实在,而且最容易让我们这些 PHPer 上手的,绝对还是 XunSearch 。在我的学习过程中,发...

硬核项目经理 749

Elasticsearch入门介绍

要了解ES首先就要弄清楚下面的几个概念,这样也不会对ES产生一些误解:1 近实时ES并不是一个标准的数据库,它不像MongoDB,它侧重于对存储的数据进行搜索。因此要注意到它不是实时读写的,这也就意味着,刚刚存储的数据,并不能马上查询到。当然这里还要区分查询的方式,ES也有数据的查询以及搜索,这里的近实时强调的是搜索....2 集群在ES中,对用户来说集群是很透明的。你只需要指定一个集群的名字(默认是elasticsearch),启动的时候,凡是集群是这个名字的,都会默认加入到一个集群中。

java领域分享 714

ElasticSearch Solr 的对照测试

  ElasticSearch Solr对比测试 本文从两个方面对ElasticSearchSolr进行对比,从关系型数据库中的导入速度和模糊查询的速度。       单机对比 1. Solr 发布了4.0-alpha,试了一下,发现需要自己修改schema,好处是它自带一个data importer。在自己的计算机上测试了一下,导入的性能大概是:14分钟导入 3...

soledede 231

Elasticsearch(ES)介绍和安装

用户访问我们的首页,一般都会直接搜索来寻找自己想要购买的商品。而商品的数量非常多,而且分类繁杂。如何能正确的显示出用户想要的商品,并进行合理的过滤,尽快促成交易,是搜索系统要研究的核心。面对这样复杂的搜索业务和数据量,使用传统数据库搜索就显得力不从心,一般我们都会使用全文检索技术Elasticsearch。Elastic — 搜索 AI 公司 | ElasticElasticsearch是一个基于Lucene的搜索服务器引擎(软件)。它提供了一个分布式多用户能力的全文搜索引擎(软件),基于。

qq_64392336的博客 1323

SOLR Performance Benchmarks – Single vs. Multi-core Index Shards

SOLR Performance Benchmarks – Single vs. Multi-core Index Shards http://www.derivante.com/2009/05/05/solr-performance-benchmarks-si...

92

SpringBoot+ElasticSearch+logstash学习笔记

目录 1.1.什么是ElasticSearch 1.2.ElasticSearch特点 1.3.SolrElasticsearch对比 2.ElasticSearch安装(服务端) 2.1.ElasticSearch部署启动 2.2.ElasticSearch体系结构 3. elasticsearch-head 插件的安装使用(客户端) 3.1.Head插件安装 3.2.H...

程序猿劝退师的博客 1073

Solr使用入门指南

本文转自 http://chuanliang2007.spaces.live.com/blog/cns!E5B7AB2851A4C9D2!499.entry?wa=wsignin1.0 由于搜索引擎功能在门户社区中对提高用户体验有着重在门户社区中涉及大量需要搜索引擎的功能需求,目前在实现搜索引擎的方案上有集中方案可供选择: 1. 基于Lucene自己进行封装实现站内搜索。工作量及扩

every_evy的博客 583

Elasticsearch--基于lucene的分布式搜索引擎

目录一、Elasticsearch简介1. 什么是Elasticsearch2.Elasticsearch的应用案例3.ElasticsearchSolr对比二、Elasticsearch安装和启动1.Elasticsearch的下载2.Elasticsearch的安装3.启动Elasticsearch4.Elasticsearch图形化界面插件的安装 一、Elasticsearch简介 1. 什么是Elasticsearch 1)Elasticsearch,简称ES,是一个开源的高扩展的分布式全文检索

孤独の根号三 1520

我的ElasticSearch集群部署总结--大数据搜索引擎你不得不知

摘要:世上有三类书籍:1、介绍知识,2、阐述理论,3、工具书;世间也存在两类知识:1、技术,2、思想。以下是我在部署ElasticSearch集群时的经验总结,它们大体属于第一类知识“techknowledge(技术)”。但其中也穿插一些我个人的理解。敬请指正。 关键词:ElasticSearch, 搜索引擎, 集群, 大数据, Solr, 大数据 三类书籍 和 两类知识: ...

weixin_30348519的博客 108

关于Solr的使用总结的心得体会

摘要:在项目中使用Solr作为搜索引擎对大数据量创建索引,提供服务,本文是作者对Solr的使用总结的一点心得体会, 具体包括使用DataImportHandler从数据库中近实时同步数据、测试Solr创建索引的性能、以及测试Solr的搜索效率总结等。 具体搜索引擎概念、Solr搭建方法、数据库mysql使用方法,假设读者已有了基础。本文操作均是在linux上进行的。  1.      Sol...

weixin_33911824的博客 136
上一篇: 恶心的Android 蓝牙
下一篇: ElasticSearch 的一次非正常master脱离的调查
SimonLei
博客等级 码龄24年 0粉丝 14原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值