【原创】Lucene vs Solr

Lucene vs Solr 

原文地址:这里 。

许多新接触 Lucene 和 Solr 的朋友会问这样的问题:我应该使用 Lucene 和 Solr 中的哪一个? 
其实答案很简单:如果你是像上面那样问自己的,那么 99% 的情况下,你需要使用的是 Solr 。 

将 Solr 和 Lucene 之间的关系进行概念化类比,可以想象一下汽车和其内部的引擎。你无法直接驾驶引擎,但是你可以驾驶车。同样的道理,Lucene 是一种程序库,你无法直接跑起来,而 Solr 是一种完整应用,可以拿来就用。 

什么是 Solr ? 

Apache Solr 是一种 web 应用,构建于 Lucene 之上,并实现了很多其他功能。 
其添加了如下功能: 

  • XML/HTTP and JSON APIs
  • Hit highlighting(高亮命中内容)
  • Faceted Search and Filtering(分面搜索和过滤)
  • Geospatial Search (地理空间搜索)
  • Fast Incremental Updates and Index Replication(快读增量更新和索引复制)
  • Caching
  • Replication
  • Web administration interface etc

与 Lucene 不同的是,Solr 是一种 web 应用(WAR),可以部署在任意一种 servlet 容器中,例如 Jetty, Tomcat, Resin 等。 
Solr 可以被经由非程序人员安装和使用,而 Lucene 却不行。 

支持情况如何? 
Solr 社区非常活跃,能够提供大量帮助信息。 

Solr 的索引能被 Lucene 读取使用么?反过来可以么? 
由于 Solr 底层使用的是 Lucene ,所以 Solr 索引和 Lucene 索引是相同的东西。 
从技术上讲,其实不存在 Solr 索引这样一个东西,Solr 示例只会创建 Lucene 索引。 

那么我应该在什么情况下使用 Lucene ? 
例如,如果你需要嵌入搜索功能到桌面应用中,那么 Lucene 将是非常合适的选择。 
在你需要针对底层 Lucene API 进行高度定制化控制,直接使用 Solr 会造成一些困扰,因为其已经在 Lucene 之上提供了额外的间接层。 

参考: 

  1. Hit-Highlighting in Full-Text Search
  2. 分面搜索
  3. 地理位置搜索

======== 

以下内容来自: 这里 。 

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

      Lucene 更像是一个 SDK 。有完整的 API 族以及对应的实现。你可以利用这些在自己的应用里实现高级查询(基于倒排索引技术的),Lucene 对单机或者桌面应用很实用很方便。 但是 Lucene,需要开发者自己维护索引文件,在多机环境中备份同步索引文件很是麻烦。于是就有了 Solr 。  
      而 Solr 是一个有 HTTP 接口的基于 Lucene 的查询服务器,封装了很多 Lucene 细节,自己的应用可以直接利用诸如 .../solr?q=abc 这样的 HTTP GET/POST 请求去查询,维护修改索引。 
      给个比方就是,Lucene 是给你一堆包,让你自己从底层构建一个数据库。而 Solr 是一个实现好的数据库程序,安装后就可以直接用了。 

时间: 2024-09-27 07:01:14

【原创】Lucene vs Solr的相关文章

使用Apache Lucene和Solr进行位置感知搜索

不管是通过支持 GPS 的智能手机查找最近的咖啡馆,还是通过社交站点查找附近的朋友,或是查看特定城市中运输某种商品的所有货车,越来越多的人和企业都使用位置感知的搜索服务.创建位置感知搜索服务通常属于昂贵的专用解决方案的一部分,并且一般由地理空间专家完成.不过,很流行的开源搜索库 Apache Lucene 和强大的 Lucene 搜索服务器 Apache Solr 最近添加了空间位置功能. 地理位置在空间搜索中至关重要!地理位置不仅在地产中至尊为王,将其用在搜索中还能帮助位于特定位置的用户快速找

lucene和solr的分词器词库如何从数据库加载?求代码

问题描述 lucene和solr的分词器词库如何从数据库加载?求代码 1,由于我们加入了同义词,所以需要定义一个IK的同义词工厂类IKSynonymFilterFactory继承TokenFilterFactory类并实现ResourceLoaderAware接口和Runnable接口,并重写create方法,在solr的里使用 2,我们定义一个ISSAnalyer类继承Analyzer,并重写必要方法,方便在控制台下测试. 3,定义一个IKTokenizerFactory类继承Tokenize

lucene 和 solr 简介以及区别

首先Solr是基于Lucene做的,Lucene是一套信息检索工具包,但并不包含搜索引擎系统,它包含了索引结构.读写索引工具.相关性工具.排序等功能,因此在使用Lucene时你仍需要关注搜索引擎系统,例如数据获取.解析.分词等方面的东西. Lucene更像是一个SDK. 有完整的API族以及对应的实现.你可以利用这些在自己的应用里实现高级查询(基于倒排索引技术的),Lucene对单机或者桌面应用很实用很方便.但是Lucene,需要开发者自己维护索引文件,在多机环境中备份同步索引文件很是麻烦.于是

利用Apache Lucene和Solr构建下一代数据驱动应用程序

Lucene 和 Solr 提交者 Grant Ingersoll 介绍了与相关性.分布式搜索和分面 (facet) 相关的最新 Lucene 和 Solr 功能.本文将学习如何利用这些功能构建快速.高效.可扩展的下一代数据驱动应用程序. 我 6 年前开始为 developerWorks 编写 Solr 和 Lucene.这些年来,Lucene 和 Solr 将自身建设成了一项坚不可摧的技术(Lucene 作为 Java API 的基础,Solr 作为搜索服务).举例而言,它们支持着 Apple

lucene/solr的缺点

lucene/solr的缺点 solrlucenehadoop&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 1) http 请求做了cache,8630.html">有时候会出现新数据不可见,cache滞后的问题.-cache优化下也不是问题 2) admin 后台页面,支持中文. 复杂查询语法上,欠友好.-自己稍加扩展也不是问题 3) swap core的时候,单结点多core,并且core对

Lucene 3.6.2入门(13) Solr3.6.2简介以及整合Tomcat

/** * [Lucene3.6.2入门系列]第13节_Solr3.6.2简介以及整合Tomcat * @see Solr是一个高性能的,采用Java5开发的,基于HTTP和Lucene实现的开源企业级全文搜索引擎 * @see 可以粗暴的理解为:Lucene专注于搜索底层实现及算法优化,Solr专注于高层次的为企业服务的易于使 用和管理的搜索服务器 * @see 再粗暴一点理解为:Lucene和Solr的关系类似于,Ajax和jQuery,Servlet和Struts2,JAX-WS和CXF,

Lucene 3.0.0细节初窥(1)-深入探索Lucene的consumer与processor

对于Lucene 3.0.0的线程模型我非常的感兴趣, 因为对于多线程我也是最近才接触, 别看我接触程序都快十年了, 有几个地方我一直非常的遗憾 : 没有写过网络相关的代码, 没有写过多线程程序, 没有写过数据库相关的内容, 没有写过Linux相关的程序 . 可能各位会觉得非常奇怪了: 那你这十年干嘛去了? 这不是基本上等同于不懂程序啊! (–_-) 我花了6年的时间巩固了算法和数据结构基础, 另外4年糊里糊涂的搞了很多比如3D游戏, 游戏的人工智能程序等内容, 总体上来说, 没有太多虚度时间

instagram use solr instead postgresql gis

instagram的技术点可参考 :  http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances-dozens-of 从文章来看, 在地理位置搜索方面, 他们使用了solr. 也算专车专用吧.  For our geo-search API, we used PostgreSQL for many months, but once our Media e

Solr平台化搜索实战必知场景

[提醒] 这个page是个人汇总了maillist.自己在搜索平台化.通用化过程中遇到的种种需求,为了避开必要的"敬业竞争禁止等",特地从外网搜罗并汇总代表性的需求.构成基于solr搜索"策略"参考.搜索应用查询的方案参考,但是,性能问题特别是高级用法,在大数据量时,务必压测,做到心里有底. 这里面给出的方法绝大部分基于solr接口.配置.不针对深入定制的详细说明.针对深入定制的经验,这里找不到答案,有兴趣私下交流.  整个汇总抛砖引入,各个点没有做系统.全面的论证