BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Apache Solr:基于Lucene的高伸缩性企业搜索服务器

| 作者 James Kao 关注 0 他的粉丝 ,译者 郭晓刚 关注 0 他的粉丝 发布于 2007年6月20日. 估计阅读时间: 3 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

基于Lucene的Apache Solr企业搜索服务程序,它以可移植的war文件的形式发布,提供了立等可用的索引和查询功能。用户通过HTTP界面与Solr交互,用XML文档和HTTP GET参数向Solr提交索引内容和进行查询。Solr还提供了主-从索引复制机制,以便在大规模的应用中分散查询负载。

Solr最初是由CNET Networks开发的,后来在2006年被捐赠给了Apache软件基金会。目前它已被几个高流量的公众网站用作搜索程序。社区对其的反应也很好,有用户报告说在索引了高达数百万个文档的情况下,Solr仍然维持良好的性能表现。

Solr的特性可以分成以下几类:

Schema

  • 定义文档中的索引域(field)和索引域类型
  • 动态索引域功能,可以随时增加新索引域
  • 显式类型消除了猜测索引域类型的需要
  • 停止词(stopword)表、同义词表和保护词表的配置被放到外部文件中
  • 多个新增的文本分析组件,包括分词、正则表达式过滤器和近似读音过滤器

查询

  • HTTP界面和可配置的应答格式(XML/XSLT、JSON、Python、Ruby)
  • 可按任意数量的索引域排序
  • 查询词高亮的上下文片断
  • 固定的评分范围和前缀查询——没有idf、coord或lengthNorm因子,也没有限制查询所匹配的关键词数量
  • 函数查询——评分受到索引域的的数值取值或次序的函数影响
  • 日期计算——查询和更新中的日期可用与当前日期的差值来指定

核心

  • 可插拔的查询处理器和可扩展的XML数据格式
  • 由唯一索引主键确保的文档唯一性
  • 批量更新和删除,以确保高性能
  • 由索引变更所触发的命令,用户可对其进行配置
  • 能正确处理用于排序和范围查询的数值类型

缓存

  • 可插拔的缓存实现
  • 在后台对缓存的“自动预热(Autowarming)”(当前搜索器最后访问的缓存内容将被自动填充进新搜索器的缓存,以在索引/搜索器变更时获得更高的缓存命中率)
  • 快速/轻量的过滤器实现
  • 带有“自动预热”功能的用户级缓存

复制

  • 通过远程同步(rsync)传输高效分发变化了的索引片段
  • 主动获取(Pull)策略,令搜索器的增加变得简捷
  • 可配置的分发周期,允许在及时性和缓存利用率之间获得平衡

管理界面

  • 对缓存利用率、更新和查询的全面统计信息
  • 文本分析调试器,可显示文本分析器每一阶段的结果
  • 带调试输出的Web查询界面

月初发布的1.2版增加了以下新特性:

这是Solr孵化成功后的第一次发布,这次发布带来了很多新特性,包括从CSV/分割文本加载数据、定时自动提交、更快的词素划分(faceting)、反向过滤器(negative filter)、拼写检查处理器、近似读音词汇过滤器、正则表达式文本过滤器,以及更多的灵活的插件。

developerWorks上最近发表的两篇系列文章详细介绍了Solr的安装、配置、使用和调优的全过程。

查看英文原文:Apache Solr: Lucene Based Server Provides Highly Scalable Enterprise Search

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT