Solr初识

2017-04-03  本文已影响231人  阿太哥

1 什么是Solr

Solr是Apache的顶级开源项目,它是使用Java开发的,基于lucene的全文搜索服务器。可独立运行在Servlet容器(Apache Tomcat或jetty)。

Solr相对lucene提供了更多的查询语句,提供了更多的性能优化。

Solr 对外提供标准的http接口来实现对数据的索引的增、删、改、查。在Solr中用户通过向部署在servlet容器中的Solr web应用程序发送http请求来启动索引和搜索。通过http以同样的方式返回响应,可配置xml,json 响应类型

2 Solr和lucene

Lucene是一个全文搜索引擎工具包,它是一个jar包,不能独立运行,对外提供服务。solr是基于lucene开发的。同时提供了更丰富的查询语言,实现了可配置,可扩展并对查询性能进行了优化,提供了完善的管理界面http/ip:port/solr 

3 Solr和Elasticsearch

Elasticsearch是基于lucene基础上的搜索引擎。提供了:

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

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

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

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

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

elasticsearch特点

分布式的,不需要其它组件,分发是实时的,被称为push replication

完全支持lucence的接近实时的搜索

处理多租户不需要特殊配置,而solr需要更多高级设置

采用gateway的概念,使得完全备份更加简单

各节点组成对等的网络结构,某些节点出现故障时会自动分配其它节点代替其工作

slor特点

solr有更大,更成熟的用户,开发和贡献者社区

支持添加多种格式的索引,比如html,pdf,office系列格式,json,xml,csv等

对已有数据进行搜索时,solr更快,但在建立索引时,搜索效率下降,实时搜索效率不高

随着数据量的增加,solr的搜索效率会变得很低,而elaticsearch没有明显变化

solr 的架构不适合实时搜索的应用。

上一篇下一篇

猜你喜欢

热点阅读