当前位置: 首页 > news >正文

Solr简单介绍

简介

  Solr是一个高性能,采用Java5开发,Solr基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

工作方式

  文档通过Http利用XML 加到一个搜索集合中。Solr 查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。

Solr与Lucene的关系

1. Solr 是什么?

Solr 是一个开源的企业级搜索服务器,底层使用易于扩展和修改的Java 来实现。服务
器通信使用标准的HTTP 和XML,所以如果使用Solr 了解Java 技术会有用却不是必须的要
求。
Solr 主要特性有:强大的全文检索功能,高亮显示检索结果,动态集群,数据库接口和
电子文档(Word,PDF 等)的处理。而且Solr 具有高度的可扩展,支持分布搜索和索引的
复制。

2. Lucene 是什么?

Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,
而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个
开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。
目前已经有很多应用程序的搜索功能是基于 Lucene ,比如 Eclipse 帮助系统的搜索功
能。Lucene 能够为文本类型的数据建立索引,所以你只要把你要索引的数据格式转化的文
本格式,Lucene 就能对你的文档进行索引和搜索。

3. Solr VS Lucene

Solr 与Lucene 并不是竞争对立关系,恰恰相反Solr 依存于Lucene,因为Solr 底层
的核心技术是使用Apache Lucene 来实现的,简单的说Solr 是Lucene 的服务器化。需要
注意的是Solr 并不是简单的对Lucene 进行封装,它所提供的大部分功能都区别于
Lucene。

  Lucene是一套信息检索工具包,但并不包含搜索引擎系统,它包含了索引结构、读写索引工具、相关性工具、排序等功能,因此在使用Lucene时你仍需要关注搜索引擎系统,例如数据获取、解析、分词等方面的东西。 
  首先Solr是基于Lucene做的 , Solr的目标是打造一款企业级的搜索引擎系统,因此它更接近于我们认识到的搜索引擎系统,它是一个搜索引擎服务,通过各种API可以让你的应用使用搜索 服务,而不需要将搜索逻辑耦合在应用中。而且Solr可以根据配置文件定义数据解析的方式,更像是一个搜索框架,它也支持主从、热换库等操作。还添加了高亮、facet等搜索引擎常见功能的支持 

相关文章:

  • 可视区域懒加载
  • 如何自学编程?学习方法在这里!
  • asp.net MD5 加密
  • js base
  • 「译」Node.js Streams 基础
  • SAP到SAP的升级 --- SAP行业新的金矿
  • EZOJ #257
  • iOS开发-开发总结
  • 2019年4月上旬值得一读的10本技术书籍(Python、大数据、深度学习等)!
  • Android Camera(二)
  • 五种I/O 模式——阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/O...
  • 04、HttpServletResponse
  • Tomcat7.0源码分析——请求原理分析(中)
  • 小米设备怎么不ROOT激活Xposed框架的步骤
  • Mysql 复制一条数据
  • 【译】JS基础算法脚本:字符串结尾
  • 【技术性】Search知识
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CSS3 变换
  • JavaScript创建对象的四种方式
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • Xmanager 远程桌面 CentOS 7
  • 搞机器学习要哪些技能
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 微信公众号开发小记——5.python微信红包
  • 为什么要用IPython/Jupyter?
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #pragma multi_compile #pragma shader_feature
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #前后端分离# 头条发布系统
  • (+4)2.2UML建模图
  • (12)Linux 常见的三种进程状态
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (五)IO流之ByteArrayInput/OutputStream
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)创业家杂志:UCWEB天使第一步
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .axf 转化 .bin文件 的方法
  • .NET DataGridView数据绑定说明
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .Net6使用WebSocket与前端进行通信
  • @Pointcut 使用
  • @Transactional 竟也能解决分布式事务?
  • @Transaction注解失效的几种场景(附有示例代码)
  • [2019.2.28]BZOJ4033 [HAOI2015]树上染色
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [codevs 1515]跳 【解题报告】
  • [English]英语积累本
  • [Java]快速入门二叉树,手撕相关面试题
  • [Jenkins] Docker 安装Jenkins及迁移流程
  • [jobdu]不用加减乘除做加法
  • [LeetCode]Max Points on a Line