写点什么

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

  • 2007-06-19
  • 本文字数:1102 字

    阅读完需:约 4 分钟

基于 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

2007-06-19 05:002000
用户头像

发布了 225 篇内容, 共 68.8 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

牛逼操作,ThreadLocal还能当缓存用

简爱W

Java

这么理解业务架构就对了!

周金根

BIZBOK 业务架构

刘华:弹性便是一切

刘华Kenneth

架构 DevOps 敏捷 弹性

国产数据库的经济民族

郭华

数据库 商业

如何提升系统可用性

码猿外

可用性 持续交付 工程能力 团队文化

MySQL系列(二):MySQL是怎么处理并发操作的?

z小赵

MySQL 数据库 事务

我的缺点就是做事太认真

escray

学习 面试

乘风破浪,Spring Boot入门

Simon郎

Spring Boot

Spring的Controller是单例还是多例?怎么保证并发的安全

简爱W

第11周作业

小胖子

JavaScript基础语法

Java

oeasy教您玩转linux010102查看发行版

o

一款高仿 Eyepetizer | 开眼短视频的 MVVM 开源项目

vipyinzhiwei

android kotlin 短视频 eyepetizer 开眼

都2020了,你的APP还不能运行小程序?

FinClip

小程序生态 私有小程序技术

架构师训练营高可用作业

qihuajun

我能讲明白哪些技术?

escray

学习 面试 沟通

Golang领域模型-六边形架构

奔奔奔跑

微服务 领域驱动设计 架构设计 Go 语言

我,一个当代普通大学生的自述

有梦的咸鱼

个人成长 大学生日常 个人感悟 讨论写作

Java 约束注解

HeGuang

Flink中的数据传输-5

小知识点

scala 大数据 flink

透过兴趣爱好看本质

escray

学习 面试

LeetCode题解:25. K 个一组翻转链表,迭代,JavaScript,详细注释

Lee Chen

大前端 LeetCode

阿里内部流传的Mybatis笔记终于流传出来了,赶紧收藏

简爱W

oeasy 教您玩转linux010101查看内核uname

o

学会反射后,我被录取了(干货)

苹果看辽宁体育

Java 后端 反射

架构师训练营高可用学习总结

qihuajun

深入浅出Vert.x架构

dinstone

【数据结构与算法】力扣实战之移动零、盛最多的水、爬楼梯

三钻

算法 大前端 LeetCode 数据结构与算法

面试28k职位,老乡面试官从HashCode到HashMap给我讲了一下午!「回家赶忙整理出1.6万字的面试材料」

小傅哥

数据结构 面试 hashmap 红黑树

我在项目中不可或缺么?

escray

学习 面试

再谈引入YAPI接口平台的好处

Man

DevOps YAPI API接口管理

Apache Solr:基于Lucene的高伸缩性企业搜索服务器_Java_James Kao_InfoQ精选文章