大家好,今天给各位分享solr服务器的一些知识,其中也会对solr和elasticsearch对比进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

一、solr和elasticsearch对比***有啥差别吗

从两个方面对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.2G,es占用磁盘空间是4G

单机对比2

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

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

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

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

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

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

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

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

备注:

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

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

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

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

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

集群对比:

solr服务器 solr和elasticsearch对比

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

1.首先是es,很方便的就组成了一个Cluster,等上一个3万条的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.8s,1.3s,0.02s,0.02s,0.02s

SAM_CODE:*00100014*,0.1s,0.1s,0.02s,0.03s,0.05s

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

机器1: nohup j*a-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 j*a-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。查了很多资料,把Linux的ulimit当中的nproc改成10240,把Xss改成256K,都解决不了问题。暂时没有办法进行。

结论

1.导入*能,es更强

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

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

二、solr和es区别

1、查询*能不同。当实时建立索引的时候,solr会产生io阻塞,而es则不会,es查询*能要高于solr;

2、检索效率不同。在不断动态添加数据的时候,solr的检索效率会变的低下,而es则没有什么变化;

3、管理方式不同。Solr利用zookeeper进行分布式管理,而es自身带有分布式系统管理功能。Solr一般都要部署到web服务器上;

4、文件格式不同。Solr支持更多的格式数据[xml,json,csv等],而es仅支持json文件格式;

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

6、Solr官网提供的功能更多,而es本身更注重于核心功能,高级功能多有第三方插件。

三、Linux里面es和Solr区别是什么

1.查询*能不同。当实时建立索引的时候,solr会产生io阻塞,而es则不会,es查询*能要高于solr;

2.检索效率不同。在不断动态添加数据的时候,solr的检索效率会变的低下,而es则没有什么变化;

3.管理方式不同。Solr利用zookeeper进行分布式管理,而es自身带有分布式系统管理功能。Solr一般都要部署到web服务器上;

4.文件格式不同。Solr支持更多的格式数据[xml,json,csv等],而es仅支持json文件格式;

四、lucene,solr有什么区别

Lucene是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎.

Solr是一个高*能,采用J*a5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询*能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。它对外提供类似于Web-service的API接口。用户可以通过请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Solr Get操作提出查找请求,并得到XML格式的返回结果;

Solr和Lucene的本质区别有以下三点:搜索服务器,企业级和管理。Lucene本质上是搜索库,不是独立的应用程序,而Solr是。Lucene专注于搜索底层的建设,而Solr专注于企业应用。Lucene不负责支撑搜索服务所必须的管理,而Solr负责。所以说,一句话概括Solr: Solr是Lucene面向企业搜索应用的扩展