1 概述

Solr 是一个基于 Apache Lucene 之上的搜索服务器,它是一个开源的、基于 Java 的信息检索库。它旨在驱动功能强大的文档检索应用程序 - 无论您需要根据用户的查询将数据服务到何处,Solr 都可以为您服务。Solr与应用程序的集成以为您服务。

下面是一个如何将 Solr 集成到应用程序中的示例

在上述情况下,Solr 与其他服务器应用程序并行运行。例如,在线商店应用程序将提供用户界面、购物车以及为最终用户购买的方式;而库存管理应用程序将允许商店员工编辑产品信息。产品元数据将保存在某种数据库以及 Solr 中。

Solr的官网: http://lucene.apache.org/solr/

2 特点

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

在Lucene 主要有个算法被为

倒排索引:使用关键字去搜索文档

正排索引:使用文档的Id 去查询文档,对比文档里面有没有该关键字

倒排索引:就是利用一个Map 集合搞定

Map<String,List<ID>> 这个速度快

正排索引:扫描全表,做个匹配而已

3 工作方式

文档通过Http利用XML或者json 加到一个搜索集合中。

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

4 SolrCloud与Solr,lucene关系

4.1 solr与luence的关系

以下为solr官方原文

Many people new to Lucene and Solr will ask the obvious question: Should I use Lucene or Solr?

The answer is simple: if you're asking yourself this question, in 99% of situations, what you want to use is Solr.

A simple way to conceptualize the relationship between Solr and Lucene is that of a car and its engine. You can't drive an engine, but you can drive a car. Similarly, Lucene is a programmatic library which you can't use as-is, whereas Solr is a complete application which you can use out-of-box.

翻译为

许多刚接触Lucene和Solr的人会问一个显而易见的问题:我应该使用Lucene还是Solr?

答案很简单:如果你问自己这个问题,在99%的情况下,你想用的是Solr。

概念化Solr和Lucene之间关系的一个简单方法是汽车及其发动机。你不能开发动机,但你可以开汽车。类似地,Lucene是一个程序库,不能按原样使用,而Solr是一个完整的应用程序,可以开箱即用。

网上有这样的比喻:

(1) lucene是数据库的话,solr就是jdbc

(2) lucene是jar,solr就是一个引用这些jar来写的搜索客户端。Solr是一个可以直接用的应用,而lucene只是一些编程用的库。

4.2 Solr与SolrCloud

SolrCloud是Solr4.0版本开发出的具有开创意义的基于Solr和Zookeeper的分布式搜索方案,或者可以说,SolrCloud是Solr的一种部署方式。Solr可以以多种方式部署,例如单机方式,多机Master-Slaver方式,这些方式部署的Solr不具有SolrCloud的特色功能。

Solr(1):Solr概述相关推荐

  1. Solr 11 - Solr集群模式的部署(基于Solr 4.10.4搭建SolrCloud)

    目录 1 SolrCloud结构说明 2 环境的安装 2.1 环境说明 2.2 部署并启动ZooKeeper集群 2.3 部署Solr单机服务 2.4 添加Solr的索引库 3 部署Solr集群服务( ...

  2. linux环境下如何查看solr版本,Solr环境搭建(linux)

    1. 前言 在5.0版本之前,solr无法作为独立的服务器进行使用,需要将其打包为war包部署在任何Servlet容器内才能使用. 从5.0开始,solr可以单独作为一个独立的Java应用服务器分发使 ...

  3. Solr 07 - Solr从MySQL数据库中导入数据 (Solr DIH的使用示例)

    目录 1 加入数据导入处理器的jar包 2 加入数据库驱动包 3 配置solrconfig.xml文件 3.1 配置lib标签 - 加入驱动jar包 3.2 配置requestHandler标签 - ...

  4. 02 Apache Solr: 概览 Solr在信息系统架构中的位置

    概述: Apache Solr是一个用JAVA语言构建在Apache Lucene项目上的开源的企业级搜索平台.主要特性包含:全文搜索.命中高亮.片段式搜索.实时索引.动态集群.数据库集成.NoSQL ...

  5. 全文检索引擎Solr系列——Solr核心概念、配置文件

    2019独角兽企业重金招聘Python工程师标准>>> Document Document是Solr索引(动词,indexing)和搜索的最基本单元,它类似于关系数据库表中的一条记录 ...

  6. 【Solr】 solr对拼音搜索和拼音首字母搜索的支持

    问:对于拼音和拼音首字母的支持,当你在搜商品的时候,如果想输入拼音和拼音首字母就给出商品的信息,怎么办呢? 实现方式有2种,但是他们其实是对应的.  用lucene实现 1.建索引, 多建一个索引字段 ...

  7. solr hdfs solr.in.sh

    添加 SOLR_OPTS="$SOLR_OPTS -Dsolr.directoryFactory=HdfsDirectoryFactory \ -Dsolr.lock.type=hdfs \ ...

  8. 【solr】solr介绍

    什么是Solr Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展,并对索引 ...

  9. php solr,PHP: Solr - Manual

    SolrQuery::addExpandFilterQuery - Overrides main filter query, determines which documents to include ...

  10. Solr 16 - Solr中添加、更新、删除数据的几种方式 (在URL上或Web页面中操作)

    目录 1 添加/更新索引数据 1.1 JSON格式的操作 1.2 XML格式的操作 2 删除索引数据 2.1 删除符合特定条件的数据 2.2 删除指定ID的数据 2.3 删除全部索引数据 3 在doc ...

最新文章

  1. php symfony 安装,Symfony的安装和配置方法
  2. ScriptManager.RegisterStartupScript方法和Page.ClientScript.RegisterStartupScript() 区别
  3. 给刚入职开发人员的几句心里话
  4. android volley post 参数,android – 使用Volley POST传递参数
  5. 【Qt】2D绘图之绘制路径
  6. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第51篇]什么是基于ID的加密的安全模型,描述一个IBE方案
  7. 还在担心没有服务器做不了数据分析?这个免费资源看一下!
  8. inotify+rsync实时双向同步文件
  9. Docker 安装 Java Jdk 8、安装 Vim 编辑器
  10. 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_3、快速创建SpringBoot应用之手工创建web应用...
  11. Ubuntu Kvm USB重定向问题解决
  12. 红海竞争下,「社交+」在中东泛娱乐 App 市场的出海新机遇
  13. Iphone备份SHSH的方法步骤
  14. python爬虫之三 —— 淘宝评论
  15. 基金实时盈亏展现的接口和网页 java
  16. linux学习-执行cp命令时略过目录
  17. Git之(三)辅助命令
  18. MATLAB构造向量
  19. div四角边框直角、倒角、 圆角、倒圆角
  20. 古建筑灯光秀投影设计应该注意哪些细节呢?

热门文章

  1. 完整LIS系统源码 大型医院实验室信息管理系统源码
  2. Flink实战(三) - 编程范式及核心概念
  3. 神奇的伽玛函数(上) | 数学之美
  4. c语言打印空心数字图形,(完整word版)C语言编写打印实心和空心菱形【源码】
  5. svga插件_svga动画插件,直播svga礼物展示
  6. 如何制作一个类似Tiny Wings的游戏(2) Cocos2d-x 2.1.4
  7. EPC 项目 产值确认及开票业务流程
  8. Excel中的散点图这么强大,学习了!
  9. Android软件开发教学视频(转载)
  10. 关于jQuery 两个插件网站