Solr 对比 Lucene 的优势

在Solr的官方网站上找打了一个Solr和Lucene比较的文章,希望对正在搜索引擎选型的同学有所帮助。
1、Solr的特性
● 先进的全文本搜索能力;
● 对高性能web应用的优化;
● 以开放协议(XML、JSON、HTTP)为接口;
● 拥有完整的HTML管理端;
● 使用JMX监控的服务器的统计信息;
● 线性可以扩展,索引自动复制,故障的自动转移和恢复;
● 近实实时搜索;
● 基于XML配置的灵活性和适应性;
● 可扩展的插件体系结构。
2、Solr是基于lucene搜索库和对它的扩展实现!
● 一个真正的以数据类型、动态属性、唯一主键为象组成的数据模型;
● 强大的lucene扩展查询语言;
● 支持Faceted搜索和过滤;
● 使用空间搜索完成对每个文档的多点定位;
● 先进的可配置的文本分析;
● 性能优化;
● 以xml为格式的外部配置;
● ajax的管理员接口;
● 对日志的监控;
● 快速的近实时增量索引和索引复制;
● 高可扩展的分布式搜索;
● 以JSON,XML,CSV/格式化文本,二进制为更新索引格式;
● 简单的从本地硬盘和网络资源的数据库或xml文件中提取数据;
● 通过Apache Tika从富文本文件(PDF,Word,HTML,etc)中提取、索引内容;
● 使用Apache UIMA完成元数据提取;
● 多搜索索引
3、详细功能
①Schema
● 定义搜索字段和字段属性;
● 可加入更多的智能处理;
● 声明lucene分词类型;
● 使用动态字段可以运行时增加新的字段;
● CopyField功能允许多种来源的单个字段或多个字段组合成一个单独的搜索域;
● 明确删除需要需要猜测字段的类型;
● 基于文件配置停止词列表、同义词列表和保护词列表;
● 许多额外的对文本分析组件,包括分词、正则、过滤;
● 相似模型字段可以替换
②Query
● XML/XSLT, JSON, Python, Ruby, PHP, Velocity, CSV, binary作为HTTP响应接口;
● 使用任意数量的字段和复杂的数值型字段进行排序;
● 高级DisMax查询解析获得和用户输入查询高度相关性结果;
● 高亮上下文片段;
● Faceted搜索基于唯一属性值,显示查询,数据区间,数值区间或临界点;
● 多选Faceting 通过标签和选择不包括的过滤器;
● 为用户的查询提供拼写建议;
● 给查询的结果更多的建议;
● 功能查询-影响用户指定的数值字段复杂功能的得分或查询相关性得分;
● 区间过滤 以上功能性查询的结果;
● 日期运算-想对于指定日期“现在”的查询和更新;
● 使用Carrot2的动态集群搜索;
● 数值字段统计例如min,max,average, standard deviation;
● 支持同时查询来自不同语法;
● 自动补全用户的查询;
● 允许配置置顶的查询结果,覆盖原有的评分和排序规则;
● 有能力简单连接两条记录类型的能力;
● 性能优化;
③Core
● 无需重,启动态的创建、删除索引;
● 可装卸的查询处理和可扩展的xml数据格式;
● 可装卸的用户查询功能;
● 基于requset hanelder自定义组件为实现分布式查询;
● 对关键字段的唯一性查询;
● 重复记录的检测,包括相近记录;
● 自定义索引处理链,运行在建立索引前整理索引记录;
● 可配置当索引变化时执行的命令;
④Caching
● 配置查询结果、过滤和记录缓存实例;
● 可装配的缓存实现 包括无锁和高并发执行;
● 后台缓存预热;
● 当一个新的搜索被打开,配置搜索防止第一次搜索很慢。预热期间,当前的搜索会处理现有的请求;
● 后台自动预热;
● 当前缓存中最近访问的搜索缓存会被重新装填到新的搜索中,提高了索引、搜索创建过程中的缓存命中率;
● 小而巧的过滤器实现;
● 支持用户级缓存自动预热
⑤SolrCloud
● 使用Apache ZooKeeper集中管理配置;
● 自动分布创建/分享索引-发送记录到任意节点的正确片段;
● 近实时的索引为基础的及时复制(当然也支持缓慢索引复制)
● 事物日志确保没有更新丢失甚至记录没有索引到硬盘上;
● 自动查询故障转移,索引选择和失败恢复;
● 没有单节点故障风险;
⑥Admin Interface
● 综合统计缓存的利用率,更新和查询;
● 交互式的的索引统计信息浏览;
● 索引复制的监控;
● SolrCload的对图形集群节点的仪表盘
● 所有日志的控制;
● 文本分析调试,显示每一个阶段中结果;
● Web查询接口和调试输出;
● 分析查询输出;
● 解释 记录Lucene得分;
● 说明请求区间外的记录为什么没有给高分;
原英文页:http://lucene.apache.org/solr/