10 月 23 - 25 日,QCon 上海站即将召开,9折优惠最后1天 了解详情
写点什么

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:002156
用户头像

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

关注

评论

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

视觉套件专项活动!与飞桨技术专家一起提升技术实力,更多荣誉奖励等你领取

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

大文件传输过程中的网络拥塞控制方法研究

镭速

大文件传输 网络拥塞问题

fastposter v2.16.0 让海报开发更简单

物有本末

图片处理 海报生成器 海报生成

数仓现网案例丨超大结果集接收异常

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

快速玩转 Llama2!阿里云机器学习 PAI 推出最佳实践(二)——全参数微调训练

阿里云大数据AI技术

人工智能

直播程序源码开发建设:洞察全局,数据统计与分析功能-山东布谷科技创作

山东布谷科技

软件开发 直播 源码搭建 程序源码 mac数据分析统计软件

密集发布AI应用后,微软2023财报传递了什么信号|TE解读

TE智库

印刷行业MES系统解决方案

万界星空科技

开源 MES系统 印刷

Java Web应用开发案例|使用AJAX实现省市区三级联动效果

TiAmo

Java Java web 开发实例

Kratos 大乱炖 —— 整合其他Web框架:Gin、FastHttp、Hertz

golang gin Kratos

开发语音APP源码的小知识

山东布谷网络科技

app源码

澜舟科技CEO周明:不过度追求AGI,更看重大模型语言理解能力和应用落地性 | 1号位

澜舟孟子开源社区

HBase Compaction 原理与线上调优实践

vivo互联网技术

HBase 调优参数 Minor Compaction Compaction策略 Major Compaction

初探webAssembly | 京东物流技术团队

京东科技开发者

前端 webassembly JavaScrip Blazor WebAssembly 企业号 7 月 PK 榜

长连接:ChatGPT流式响应背后的逻辑 | 京东物流技术团队

京东科技开发者

websocket 长连接 企业号 7 月 PK 榜 sse

澜舟科技创始人兼CEO周明受邀出席“基础科学与人工智能论坛”

澜舟孟子开源社区

Java程序员常用的日志框架有哪些?

java易二三

Java 编程 程序员 计算机

Java一维数组是什么,怎么用?

java易二三

Java 编程 程序员 数组 计算机

Golang微服务框架kratos实现Socket.IO服务

golang socket websocket Kratos

Golang微服务框架Kratos实现GraphQL服务

golang graphql Kratos

Golang微服务框架Kratos实现Thrift服务

拥抱AIGC,他们有话说——百度李双龙:AIGC将赋能多个场域并惠及千行百业

百度Geek说

人工智能 百度 企业号 7 月 PK 榜 AICG

3D建模和3D渲染是吃CPU还是显卡?以及专业图形显卡和游戏显卡的区别

Finovy Cloud

3D

Java基础 日期和时间

java易二三

程序员 计算机 java 编程

JAVA和JVM运行原理是什么?

java易二三

Java 编程 JVM 计算机 程序猿

Spring AOP 中,切点有多少种定义方式?

江南一点雨

Java spring

用故事给予企业全面预算管理一个灵魂

智达方通

全面预算管理 企业全面预算管理 预算场景

NineData已支持「最受欢迎数据库」PostgreSQL

NineData

postgresql 客户端 数据源 NineData 集成AI

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