热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Solr学习01:Solr基础知识

一、什么是solr首先,要了解下Solr是什么,以下是官方的描述。Solr是一个来自ApacheLucence项目,是一个热门开源的企业级搜索平台。为目前世界上相当多的大型互联网站

  一、什么是solr

  首先,要了解下Solr是什么,以下是官方的描述。

  Solr是一个来自Apache Lucence项目,是一个热门开源的企业级搜索平台。为目前世界上相当多的大型互联网站点提供搜索和导航服务。

  [http://wiki.apache.org/solr/]

   Solr使用Java语言写的,作为一个独立的全文检索服务器项目,可运行在如Jetty或Tomcat等servlet容器中。(Solr提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON等格式)。它易于安装和配置,而且附带了一个基于HTTP 的管理界面。) Solr在核心全文索引及搜索中使用Lucence的Java搜索类库,并且拥有REST风格的HTTP/XML 或JSON接口,使它很容易的在各种编程语言中使用。Solr强大的外部配置,允许为几乎任何类型的应用定制而不需要Java编码,而当需要更高级定制的时候,它的扩展插件机制就可以满足这一点。(可以使用 Solr 的表现优异的基本搜索功能,也可以对它进行扩展从而满足企业的需要。)   

  Solr的主要特性如下:

  1. 强大的全文检索功能;
  2. 高亮功能;
  3. 面搜索功能;
  4. 接近实时的索引创建;
  5. 动态聚类;
  6. 数据库整合;
  7. 富文本处理,如 Word和PDF;
  8. 空间搜索;
  9. 高可靠性、伸缩性和容错能力。提供分布式索引,复制,和负载平衡的查询。自动故障转移和恢复,易于配置等;
  10. 可扩展的插件扩展体系。

  二、什么是Lucene

  因为Solr是基于Lucence的扩展,所以也了解下Lucene。

  Lucene是一个基于Java的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。

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

  官网:[http://lucene.apache.org/]

  三、Solr vs Lucene

  Solr与Lucene 并不是竞争对立关系,Solr 依存于Lucene,因为Solr底层的核心技术是使用Lucene 来实现的。

  Solr和Lucene的本质区别有以下三点:搜索服务器,企业级和管理。
  Lucene本质上是搜索库,而Solr是独立的应用程序。Lucene专注于搜索底层的建设,而Solr专注于企业应用。Lucene不负责支撑搜索服务所必须的管理,而Solr负责。 所以说,一句话概括 Solr:  Solr是Lucene面向企业搜索应用的扩展。Solr使用Lucene并且扩展了它。

  Solr与Lucene架构图:

,

拥有动态字段(Dynamic Field)和唯一键(Unique Key)的数据模式(Data Schema)
对Lucene查询语言的强大扩展!
支持对结果进行动态的分组和过滤
高级的,可配置的文本分析
高度可配置和可扩展的缓存机制
性能优化
支持通过XML进行外部配置
拥有一个管理界面
可监控的日志
支持高速增量式更新(Fast incremental Updates)和快照发布(Snapshot Distribution)

Solr学习01:Solr基础知识


推荐阅读
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了如何在PHP中记录和管理行为日志,包括ThinkPHP框架中的日志记录方法、日志的用途、实现原理以及相关配置。 ... [详细]
  • 本文介绍了如何查看PHP网站及其源码的方法,包括环境搭建、本地测试、源码查看和在线查找等步骤。 ... [详细]
  • 蒜头君的倒水问题(矩阵快速幂优化)
    蒜头君将两杯热水分别倒入两个杯子中,每杯水的初始量分别为a毫升和b毫升。为了使水冷却,蒜头君采用了一种特殊的方式,即每次将第一杯中的x%的水倒入第二杯,同时将第二杯中的y%的水倒入第一杯。这种操作会重复进行k次,最终求出两杯水中各自的水量。 ... [详细]
  • CSS 百分比单位的取值依据是什么
    本文详细探讨了 CSS 中百分比单位的取值依据,包括不同定位方式下的包含块概念及其应用。通过具体的示例和代码,帮助读者更好地理解和掌握这一知识点。 ... [详细]
  • malloc 是 C 语言中的一个标准库函数,全称为 memory allocation,即动态内存分配。它用于在程序运行时申请一块指定大小的连续内存区域,并返回该区域的起始地址。当无法预先确定内存的具体位置时,可以通过 malloc 动态分配内存。 ... [详细]
  • NX二次开发:UFUN点收集器UF_UI_select_point_collection详解
    本文介绍了如何在NX中使用UFUN库进行点收集器的二次开发,包括必要的头文件包含、初始化和选择点集合的具体实现。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 网络爬虫的规范与限制
    本文探讨了网络爬虫引发的问题及其解决方案,重点介绍了Robots协议的作用和使用方法,旨在为网络爬虫的合理使用提供指导。 ... [详细]
  • [c++基础]STL
    cppfig15_10.cppincludeincludeusingnamespacestd;templatevoidprintVector(constvector&integer ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • LDAP服务器配置与管理
    本文介绍如何通过安装和配置SSSD服务来统一管理用户账户信息,并实现其他系统的登录调用。通过图形化交互界面配置LDAP服务器,确保用户账户信息的集中管理和安全访问。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
author-avatar
的发个地方
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有