Apache Solr

1. Apache Solr


Solr是一个流行、发展迅速的开源企业搜索引擎平台,源自Apache Lucene项目。它的主要功能特征包括强大的全文检索(full-text search), 命中高亮(hit highlighting), 分面搜索(faceted search), 近乎实时地索引(near real-time indexing), 动态聚合(dynamic clustering), 数据库整合(database integration), 富文档(如Word, PDF)处理(rich document handling), 以及地理空间搜索(geospatial search). Solr具有高可靠性,扩展性和容错性,提供分布式索引,复制(备份)及负载平衡的查询,自动的容错移转和恢复,集中式的配置及更多。Solr为世界上很多网站提供了搜索和导航功能的支持。

Solr由Java编写并且作为一个独立的全文检索服务器运行于一个servlet容器如Jetty. Solr使用Lucene的Java检索库作为其全文索引和搜索的核心,并且有接近REST风格(REST-like)的HTTP/XML和JSON应用程序接口(APIs),使得它几乎从任何编程语言都易于使用。Solr的强大的外部配置让它几乎适合任何应用类型,而不需要写Java代码。并且当有更高级的定制需求时,它有一个扩展的插件框架。

更详细的信息请参考完全的功能特性列表。

关于Solr的更多信息,请见Solr Wiki (http://wiki.apache.org/solr/).

2. Solr 功能特性列表


Solr是一个独立的企业搜索引擎有类似REST的API. 可通过XML, JSON, CSV或二进制文件由HTTP向它放入文档(称为"索引")。你通过HTTP GET查询并且收到XML, JSON, CSV或二进制文件结果。

。先进的全文搜索能力
。为高Web流量进行了优化
。标准基于开放接口 - XML, JSON和HTTP
。全面的HTML管理接口
。服务器统计信息通过JMX导出以用于监控
。线性可扩展,自动索引复制,自动故障迁移和恢复
。近乎实时索引
。使用XML配置灵活可适配。
。可扩展的插件接口

2.1 Solr使用Lucene检索库并扩展它!


。一个实际数据模式,含数值类型,动态域,唯一键
。对Lucene查询语言的强大扩展
。分面搜索和过滤
。地理空间搜索,支持每个文档的多点和多边型
。高级,可配置的文本分析
。高度可配置和用户可扩展的缓存
。性能优化
。通过XML的外部配置
。一个基于AJAX的管理界面
。可监控的日志
。快速近乎实时的增量索引和索引复制
。高度可扩展的分布式搜索,及跨多主机的分片索引
。JSON, XML, CSV/带分隔的文本,和二进制更新格式
。便捷的方式从本地磁盘和HTTP源拉取来自数据库和XML文件的数据
。使用Apache Tika解析并索引富文档(PDF, Word, HTML等)
。整合Apache UIMA用于可配置的元数据抽取
。多种检索索引

2.2 详细功能


2.2.1 模式 (Schema)


。定义文档的域和域的类型
。能驱动更智能的处理
。描述Lucene分析器(Analyzer)规范
。动态域使之能实时添加新的域
。复制域(CopyField)功能允许一个域以多种方式索引,或将多个域组合成一个可搜索的域
。显示的类型消除了需要猜测域的类型
。基于外部文件配置停用词列表,同义词列表,和保留词列表
。每个域可插入相似度模型

2.2.2 查询 (Query)


。HTTP接口和可配置的返回格式(XML/XSLT, JSON, Python, Ruby, PHP, Velocity, CSV, binary)
。按任意数目的域排序,也可按数值域的复杂函数排序
。高级的DisMax(Disjunction Max)查询解析器用于与用户输入的查询高度相关的结果
。高亮的内容片段
。分面搜索基于单个域值,显示查询,日期范围,数值范围或中心
。通过标签的多选择分面,和可选的排除过滤器
。对用户查询的拼写建议
。对给定文档的"更像这个"(More Like This)建议
。函数查询(Function Query) - 通过用户指定的数值域或相度关分数的复杂函数影响(排序)分数
。对函数查询结果的范围过滤
。日期数学(Date Math) - 在查询和更新中指定相对于"NOW"的日期
。使用Carrot2来动态聚类搜索结果
。数值域统计,如min, max, average, 标准差(standard deviation)
。组合来自不同语法的查询
。补全用查询的自动建议(auto-suggest)功能
。允许配置查询的top结果,重载常用的打分和排序
。两种文件类型之间的简单连接(join)功能
。性能优化

2.2.3 核心 (Core)


。动态创建和删除文档集合而不需重启服务
。可插入的查询处理器和可扩展的XML数据格式
。可插入的用户函数用于函数查询
。基于可定制组件的请求处理器和分布式搜索支持
。基于唯一键域强化文档唯一性
。文档去重,包括模糊相近的重复
。定制索引处理序列,允许索引前的文档操作
。索引改变时触发的用户可配的命令
。能控制缺失排序字段(域)的文档排在什么位置
。"Luke"请求处理器用于文档集信息

2.2.4 缓存 (Caching)


。可配置的查询结果,过滤器,和文档缓存对象
。可插入的缓存实现,包括一个无锁的,高并发的实现
。在后台预热缓存
。当一个新的搜索器打开时,可配的搜索将在其上运行以进行预热,来避免延缓首次命中。在预热期间,当前的搜索器将处理活跃的搜索请求
。在后台自动预热
。当前搜索器中最近最多访问的记录将被填入新的搜索器,使index/searcher切换时保持高缓存命中率
。快速/轻量的过滤器实现
。用户级缓存和自动预热支持

2.2.5 Solr云 (SolrCloud)


。基于Apache Zookeeper的集中式配置
。自动的分布式的索引(indexing)/分片(sharding) - 发送文档到任何节点,并且能被推送到正确的分片
。近乎实时的索引和基于推送(push-based)的即时复制(也支持慢一点的基于拉取(pull-based)的复制)
。事务(Transaction)日志确保没有更新被丢失,即便文档还没有被索引到磁盘
。自动的查询失败转移,索引领导(节点?)选择和故障恢复
。没有单点故障

2.2.6 管理界面 (Admin Interface)


。缓存使用,更新和查询的完全统计信息
。包含索引统计的交换模式浏览
。复制(冗余)监控
。SolrCloud仪表和图形的集群节点状态
。完全的日志控制
。文本分析调试器,显示分析过程中的每一步结果
。网络查询接口(Web Query Interface) 调试输出
。解析后的查询输出
。Lucene解释explain()文档打分细节。
。解释请求范围之外的文档的分数,以调试为何一个给定的文档没有被更高的排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值