一步一步学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的管理界面等。

下面将写solr站内搜索的实战,基于solr4.9+tomcat7,欢迎更多好朋友一起讨论。

时间: 2024-10-30 08:39:15

一步一步学solr:什么是solr?的相关文章

一步一步学solr:tomcat7+solr4.9环境搭建

    solr下载地址:http://www.apache.org/dyn/closer.cgi/lucene/solr/4.9.0     tomcat下载地址:http://tomcat.apache.org/download-70.cgi 首先将下载好的2个包解压,我在E:/test文件夹 一个空的tomcat 找到你解压好的solr4.9.0目录, 将E:\solr-4.9.0\example\webapps的solr.war拷贝到E:\test\tomcat7\webapps下 然后

一步一步学EJB3.0(三):悟透会话Bean(下)

三.无状态会话Bean实例 在上一篇文章里,其实我们已经应用到了无状态会话Bean,那好,下面我们详细的来分析下上一篇文 章里给出的示例程序. 没有阅读过的朋友请点击这里阅读:<<一步一步学EJB 3.0(二):初探企业 EJB模块开发>> . 首先我们来看看接口的定义: 1 /** 2 * 远程接口 3 * @author Beniao 4 */ 5 @Remote 6 public interface HelloRemote { 7 void sayHello(String s

一步一步学NUnit(2)

前一章我们简单介绍了NUnit的入门示例<一步一步学NUnit(1)>,让大家对NUnit有个简单的认识. NUnit的使用是非常简单的,但是它在项目中使用时,有许多最佳实践.这章我们把上一章没有讲到的 NUnit的一些配置和特性介绍一下. 要想熟练地使用NUnit还是要在实践中使用和体会,单纯地学习知识点是没有用的. 好,不再废话了.继续上一章的内容. 在Visual Studio 2008 中打开上一章的示例,Calculator类有4个最简单的方法:加.减.乘.除. Calculator

一步一步学ROP之linux_x86篇

一步一步学ROP之linux_x86篇 作者:蒸米@阿里聚安全 一.序 ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术可以用来绕过现代操作系统的各种通用防御(比如内存不可执行和代码签名等).虽然现在大家都在用64位的操作系统,但是想要扎实的学好ROP还是得从基础的x86系统开始,但看官请不要着急,在随后的教程中我们还会带来linux_x64以及android (arm)方面的ROP利用方法,欢迎大家继续学习. 小编备注:文中涉及代

一步一步学ROP之linux_x64篇

一步一步学ROP之linux_x64篇 一.序 **ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术可以用来绕过现代操作系统的各种通用防御(比如内存不可执行和代码签名等).上次我们主要讨论了linux_x86的ROP攻击:<一步一步学ROP之linux_x86篇>,在这次的教程中我们会带来上一篇的补充以及linux_x64方面的ROP利用方法,欢迎大家继续学习. 另外文中涉及代码可在我的github下载:https://githu

一步一步学Silverlight :使用样式封装控件观感

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章带您快速进入Silverlight 2开发. 本文为系列文章第八篇,主要介绍在Silverlight中使用Style元素封装控件观感 Silv

一步一步学Silverlight :在Silverlight中如何用JavaScript调用.NET代码

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章将从Silverlight 2基础知识.数据与通信.自定义控件.动画.图形图像等几个方面带您快速进入Silverlight 2开发. Silv

一步一步学Silverlight :基本控件

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章带您快速进入Silverlight 2开发. 本文为系列文章第二篇学习几个基本的控件. 在Silverlight 2中,提供了大量的控件,包括

一步一步学Silverlight :数据与通信之WebClient

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章带您快速进入Silverlight 2开发. 本文将介绍如何在Silverlight 2中使用Web Client进行通信. 简单示例 编写一

一步一步学Silverlight :使用控件模板

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章带您快速进入Silverlight 2开发. 本文为系列文章第九篇,主要介绍如何使用控件模板定制控件的观感.Silverlight提供了极其强