lucene 和 solr 简介以及区别

简介: 首先Solr是基于Lucene做的,Lucene是一套信息检索工具包,但并不包含搜索引擎系统,它包含了索引结构、读写索引工具、相关性工具、排序等功能,因此在使用Lucene时你仍需要关注搜索引擎系统,例如数据获取、解析、分词等方面的东西。

首先Solr是基于Lucene做的,Lucene是一套信息检索工具包,但并不包含搜索引擎系统,它包含了索引结构、读写索引工具、相关性工具、排序等功能,因此在使用Lucene时你仍需要关注搜索引擎系统,例如数据获取、解析、分词等方面的东西。

Lucene更像是一个SDK。 有完整的API族以及对应的实现。你可以利用这些在自己的应用里实现高级查询(基于倒排索引技术的),Lucene对单机或者桌面应用很实用很方便。
但是Lucene,需要开发者自己维护索引文件,在多机环境中备份同步索引文件很是麻烦。于是,就有了Solr。 

而Solr是一个有HTTP接口的基于Lucene的查询服务器,封装了很多Lucene细节,自己的应用可以直接利用诸如 .../solr?q=abc 这样的HTTP GET/POST请求去查询,维护修改索引。

给个比方就是,Lucene是给你一堆包,让你自己从底层构建一个数据库。而Solr是一个实现好的数据库程序,安装后就可以直接用了。

而Solr的目标是打造一款企业级的搜索引擎系统,因此它更接近于我们认识到的搜索引擎系统,它是一个搜索引擎服务,通过各种API可以让你的应用使用搜索服务,而不需要将搜索逻辑耦合在应用中。而且Solr可以根据配置文件定义数据解析的方式,更像是一个搜索框架,它也支持主从、热换库等操作。还添加了飘红、facet等搜索引擎常见功能的支持。
因而,Lucene使用上更加灵活,但是你需要自己处理搜素引擎系统架构,以及其他附加附加功能的实现。而Solr帮你做了更多,但是是一个处于高层的框架,Lucene很多新特性不能及时向上透传,所以有时候可能发现需要一个功能,Lucene是支持的,但是Solr上已经看不到相关接口。

Many people new to Lucene and Solr will ask the obvious question: Should I use Lucene or Solr?

The answer is simple: if you're asking yourself this question, in 99% of situations, what you want to use is Solr.

A simple way to conceptualize the relationship between Solr and Lucene is that of a car and itsengine. You can't drive an engine, but you can drive a car. Similarly, Lucene is a programmatic library which you can't use as-is, whereas Solr is a complete application which you can use out-of-box.




相关文章
|
XML JSON 搜索推荐
12Solr简介
12Solr简介
46 0
|
XML 搜索推荐 安全
lucene、solr、es的区别以及应用场景
@[TOC](目录) Lucene、Solr 和 Elasticsearch(ES) 都是基于 Lucene 引擎的搜索引擎,它们之间有相似之处,但也有一些不同之处。 Lucene 是一个低级别的搜索引擎库,它提供了一种用于创建和维护全文索引的 API,以及一些搜索和排序算法。Lucene 主要用于构建自定义搜索引擎,例如在 Java 应用程序中使用。 Solr 是 Lucene 的一个扩展,它提供了一个完整的搜索引擎框架,包括了索引、搜索、排序、过滤等功能。Solr 旨在为大规模数据集提供高性能的全文搜索功能,因此它支持分布式搜索、实时搜索和自定义排序和过滤器等功能。 Elasticsear
372 0
|
XML 存储 JSON
Solr学习总结
Solr学习总结
156 0
Solr学习总结
|
存储 搜索推荐 Java
全文搜索引擎 Lucene Solr ElasticSearch 关系?
全文搜索引擎是目前广泛应用的主流搜索引擎。它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。
全文搜索引擎 Lucene Solr ElasticSearch 关系?
|
存储 SQL 编解码
Solr-lucene 使用案例大全
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。 本文sole lucene的使用案例汇总。
231 0
|
自然语言处理 索引
Lucene&solr 4 实践(3)
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。本部分主要是针对FSA FST做前期知识储备和基本概念扫盲。FST是lucene4 solr4 的索引和查询的核心! 下面的内容来自多个出去,出去就不一一列举。
118 0
Lucene&solr 4 实践(3)
|
缓存 Java 索引
Solr&Lucene cache简要汇总
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。本文汇总Solr Lucene cache相关内容。撇开系统结构、架构这些整体性的分析,纯粹从使用方面做梳理。
233 0
Solr&Lucene cache简要汇总
|
存储 自然语言处理 Java
Luke:用于Lucene / Solr / Elasticsearch索引的GUI工具
Luke:用于Lucene / Solr / Elasticsearch索引的GUI工具
621 0
Luke:用于Lucene / Solr / Elasticsearch索引的GUI工具
|
算法 Java Maven
Lucene&solr 4 实践(4)
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。本部分主要分析FST,快乐理解lucene fst包的源码细节和来龙去脉。
157 0
|
编解码 缓存 自然语言处理
Lucene&Solr 4 实践(2)
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。在第一部分,还不完善基础上,进入第二部分吧。结合源码来认识lucene! 重点是:从需求到方案到实践编码到结果、从原理到实现、从结构到细节、从总体认识到西部深入。
107 0
下一篇
DataWorks