为什么80%的码农都做不了架构师?>>>   

简介

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,欢迎更多好朋友一起讨论。

参考文献:http://wiki.apache.org/solr/

转载于:https://my.oschina.net/biezhi/blog/293673

一步一步学solr:什么是solr?相关推荐

  1. 一步一步学Silverlight 2系列(3):界面布局

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  2. 一步一步学Silverlight 2系列(10):使用用户控件

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  3. 一步一步学Silverlight 2系列(24):与浏览器交互相关辅助方法

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  4. 一步一步学Silverlight 2系列(18):综合实例之RSS阅读器

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  5. 一步一步学Linq to sql(一):预备知识

    从今天起将推出新手讲堂,首先从linq开始详细讲解.一步一步学Linq to sql(一):预备知识 什么是Linq to sql Linq to sql(或者叫DLINQ)是LINQ(.NET语言集 ...

  6. 手挽手带你学React:四档(上)一步一步学会react-redux (自己写个Redux)

    手挽手带你学React入门四档,用人话教你react-redux,理解redux架构,以及运用在react中.学完这一章,你就可以开始自己的react项目了. 之前在思否看到过某个大神的redux搭建 ...

  7. 一步一步学Silverlight 2系列(9):使用控件模板

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://terrylee.blog.51cto.com/342737/67243 ...

  8. 据lovecherry的一步一步学Remoting序列文章学习.net Remoting日记(2)

    今天学习了服务器端激活和客户端激活的区别!可还是出现了一点点的差错,经过对比得到正确的调用方法,整理如下: 1.服务器端激活,分为两种方式Singleton和SingleCall方式 Server端A ...

  9. 【Linux】一步一步学Linux——Linux版本(03)

    目录 00. 目录 01. Linux内核版本 02. Linux内核官方网站 03. Linux发行版本 04. Linux发行版本介绍 4.1 Ubuntu 4.2 RedHat 4.3 Debi ...

  10. 一步一步学Silverlight 2系列(13):数据与通信之WebRequest

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

最新文章

  1. Android中五种常用的menu
  2. python截取逗号_Python基础知识: 元组
  3. 【12】行为型-观察者模式
  4. python填充空值_Python机器学习(九十一)Pandas 填充(Imputation)空值
  5. mysql 5.6开启binlog_docker快速入门02——在docker下开启mysql5.6 binlog日志
  6. csgo一键跳投_个人csgo单练cfg参数和投掷物,附带一期叉车教学,萌新佛系休闲党必备...
  7. 自己虚拟服务器都用json可以吗,vue+webpack项目中使用dev-server搭建虚拟服务器,请求json文件数据,实现前后台分离开发...
  8. 用计算机模拟地球诞生,计算机模拟显示早期金星或像地球一样宜居
  9. Amazon Seller Central is Temporarily Unavailable
  10. POJ 2777 ZOJ 1610 HDU 1698 --线段树--区间更新
  11. python沙箱逃逸小结
  12. HIVE编程指南之HiveQL的学习笔记1
  13. Object-C---gt;Swift之(十一)属性观察者
  14. 逻辑卷管理和磁盘配额
  15. java计算机毕业设计家庭安防系统MyBatis+系统+LW文档+源码+调试部署
  16. 学生专用计算机怎么没声音,班班通电脑没声音了
  17. 基于vue2 + Muse-ui 开发的移动端轻社区项目 F-Rent
  18. 4.6 基于反熵的状态同步
  19. 【ViveFocus使用WaveVR插件获取手柄操作事件】
  20. 我用20多行代码,帮老师开发了一款发送生日祝福的小工具

热门文章

  1. C++_程序内存模型_new运算符---C++语言工作笔记030
  2. .WeightedRandomSampler(3)
  3. VS转换到 COFF 期间失败 文件无效或损坏
  4. stl的multiset和set和priority_queue区别
  5. 多核编程中伪共享问题(false sharing)
  6. 如何在Linux中查看所有正在运行的进程 1
  7. 古风一棵桃花树简笔画_运用仿真树装饰效果如此浪漫
  8. 软件的接口设计图_基于GJB 5000A的软件配置管理研究与系统实现
  9. linux 修改ramdisk内容,在Linux下使用RamDisk
  10. java jtextfield 居中_有什么办法可以使JFrame的中心居中吗? - java