企业级搜索应用服务器Solr介绍

jopen 10年前

solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目。solr需要运行在一个servlet 容器里,例如tomcat5.5。solr在lucene的上层提供了一个基于HTTP/XML的Web Services,我们的应用需要通过这个服务与solr进行交互。

企业级搜索应用服务器Solr介绍

简介

    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果;

特点

    Solr是一个独立的企业搜索服务器REST-like API。 你把文件(称为“索引”) 通过XML、JSON、CSV通过HTTP或二进制。 你查询它通过HTTP GET和接收XML、JSON、CSV或二进制的结果。

    • 高级全文搜索功能

    • 优化了高容量的网络流量

    • 基于标准的开放接口——XML、JSON和HTTP

    • 综合HTML管理接口

    • 服务器统计数据暴露在JMX监控

    • 线性可伸缩、自动索引复制,自动故障转移和恢复

    • 接近实时索引

    • 灵活和适应性强的XML配置

    • 可扩展的插件体系结构

Solr使用Lucene TM 搜索库和扩展了它!

    • 真正的数据模式,数值类型、动态字段,独特的钥匙

    • 强大的扩展Lucene查询语言

    • 面向方面的搜索和过滤

    • 地理空间搜索支持多个分文档和geo多边形

    • 先进、可配置的文本分析

    • 高度可配置和用户可扩展的缓存

    • 性能优化

    • 外部配置通过XML

    • 一个基于AJAX的管理界面

    • 可监控日志

    • 快接近实时增量索引和索引复制

    • 高度可伸缩的分布式搜索分散指数跨多个主机

    • JSON、XML、CSV / delimited-text和二进制格式更新

    • 简单的方法将数据从数据库和XML文件从本地磁盘和HTTP消息

    • 丰富的文档解析和索引(PDF、Word、HTML等)使用Apache Tika

    • Apache UIMA集成配置元数据提取

    • 多个搜索指数

详细的功能

模式

    • 定义文档的字段类型和字段

    • 可以更智能的处理

    • 声明式Lucene分析仪规范

    • 动态字段支持动态添加新字段

    • CopyField功能允许索引一个领域的多个方面,或将多个字段组合成一个可搜索的字段

    • 显式类型不需要猜测类型的字段

    • 外部文件的配置stopword列表、同义词列表和受保护的单词列表

    • 许多额外的文本分析组件,包括分词、正则表达式和近似读音过滤器

    • 可插入的每个领域相似模型

查询

    • HTTP接口具有可配置响应格式(XML / XSLT、JSON、Python、Ruby PHP,速度、CSV、二进制)

    • 通过任意数量的字段进行排序,并通过复杂的数值字段功能

    • 高级DisMax查询解析器高相关性用户输入的查询的结果

    • 强调上下文片段

    • 分面搜索基于独特的字段值,显式查询,日期范围,数值范围或枢轴

    • 同时选中分类通过标记和选择性地排除过滤器

    • 拼写建议用户查询

    • 更像这个建议给定文档

    • 函数查询——影响的分数通过用户指定复杂的功能 数值字段或查询相关性分数。

    • 范围过滤函数查询结果

    • 日期数学——相对于“现在”指定日期的查询和更新

    • 使用Carrot2动态搜索结果聚类

    • 数值字段统计如最小,最大,平均值,标准偏差

    • 结合查询源自不同的语法

    • 完成用户查询之功能

    • 允许配置的结果为一个查询,覆盖正常的得分和排序

    • 简单的两个文档类型之间的连接能力

    • 性能优化

核心

    • 没有重新启动动态创建和删除文档集合

    • 可插拔的查询处理程序和可扩展的XML数据格式

    • 可插拔的用户查询的功能函数

    • 可定制的基于组件的请求处理程序与分布式搜索的支持

    • 文档独特性执行基于独特的关键字段

    • 文档复制检测,包括模糊附近重复

    • 自定义索引处理链,使索引之前文档操作

    • 用户可配置的命令触发指数变化

    • 与排序字段丢失控制文档的能力将被放置

    • “路加福音”语料库信息请求处理程序

缓存

    • 可配置查询结果、过滤和文档缓存实例

    • 可插拔的缓存实现,包括锁自由、高并发性实现

    • 缓存变暖背景

    • 当一个新搜索器打开,可配置搜索与运行 避免为了温暖起来 缓慢的第一个打击。 在变暖,当前搜索器处理请求。

    • Autowarming背景

    • 最近访问的缓存条目 新搜索器搜索器,使高缓存命中 利率在索引/搜索者的变化。

    • 快速/小过滤器实现

    • 用户级缓存autowarming支持

SolrCloud

    • 集中基于Apache动物园管理员配置

    • 自动化的分布式索引/分片-文档发送到任何节点,它将转发到正确的切分

    • 接近实时索引与直接基于推的复制(也支持基于复制慢)

    • 事务日志可以确保不丢失更新即使还没有索引的文档到磁盘

    • 自动查询故障转移,指数领袖选举和恢复失败的情况下

    • 没有单点故障

管理界面

    • 综合统计数据缓存利用率、更新和查询

    • 互动模式浏览器,包括索引统计信息

    • 复制监控

    • SolrCloud仪表盘图形集群节点状态

    • 完整的日志记录控制

    • 文本分析调试器,显示每个阶段在一个分析器的结果

    • 网页查询接口w /调试输出

    • 解析查询输出

    • Lucene文档得分详细解释()

    • 解释分数以外的文件请求的范围来调试为什么给定文档没有排名更高。


总结

    Solr 是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配 置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。文档通过Http利用XML 加到一个搜索集合中。查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示 搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。