目录

Solr 全文检索概述

Solr 下载与目录结构

Solr 4. 10. 3 安装

测试运行 Solr

Solr 核心概念


Solr 全文检索概述

1、Lucene 是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索引擎,Lucene 提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以 Lucene 为基础构建全文检索引擎。

2、Solr 的目标是打造一款企业级的搜索引擎系统,它是一个搜索引擎服务,可以独立运行,通过 Solr 可以非常快速的构建企业的搜索引擎,通过 Solr 也可以高效的完成站内搜索功能。

Lucene 主页:http://lucene.apache.org/

Solr 主页:http://lucene.apache.org/solr/

Solr 全部版本下载地址:http://archive.apache.org/dist/lucene/solr/

Solr 使用指南:https://wiki.apache.org/solr/FrontPage

 

3、Solr 可以独立运行在 Jetty、Tomcat 等 Servlet 容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr 根据 xml 文档添加、删除、更新索引 。

4、Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。

5、Solr 不提供构建 UI 的功能,Solr 提供了一个管理界面,通过管理界面可以查询 Solr 的配置和运行情况。

6、Solr 对 Lunece进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化

7、Solr 提供了一个完善的功能管理界面,是一款非常优秀开放源码的全文搜索引擎。

8、Solr对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

9、Solr 支持多种输出格式(包括XML/XSLT 和JSON等格式),易于安装和配置,而且附带了一个基于HTTP 的管理界面。

10、Solr是Apache的一个项目!同样几百万的数据用Mysql会咔很久,而Solr照样能秒查

Solr is highly reliable, scalable and fault tolerant, providing distributed indexing, replication and load-balanced querying, automated failover and recovery, centralized configuration and more. Solr powers the search and navigation features of many of the world's largest internet sites.

(Solr 是高度可靠的、可扩展和容错的,提供分布式索引、复制和负载均衡查询、自动故障转移和恢复、集中式配置等。Solr 为许多世界上许多知名的互联网站点提供搜索和导航功能。

Solr 与 Lucene 对比

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

2、Solr 和 Lucene 的本质区别有以下三点:

Solr 是搜索服务器,企业级管理,而 Lucene 本质上是搜索库,不是独立的应用程序

Lucene 专注于搜索底层的建设,而 Solr 专注于企业应用。

Lucene 不负责支撑搜索服务所必须的管理,而Solr负责。

3、一句话概括:Solr 是 Lucene 面向企业搜索应用的扩展。

Solr 应用领域

1、在一些大型门户网站、电子商务网站等都需要站内搜索功能,使用传统的数据库查询方式实现搜索无法满足一些高级的搜索需求,比如:搜索速度快、搜索结果按相关度排序、搜索内容格式不固定等,这里就需要使用全文检索技术实现搜索功能。

2、单独使用 Lucene 实现站内搜索需要开发的工作量较大,主要表现在:索引维护、索引性能优化、搜索性能优化等,因此不建议单独使用。

3、基于 Solr 实现站内搜索扩展性较好并且可以减少程序员的工作量,因为 Solr 提供了较为完备的搜索引擎解决方案,因此在门户、论坛等系统中常用此方案。

Solr 下载与目录结构

1、Solr 全部版本下载地址:http://archive.apache.org/dist/lucene/solr/,找到对应版本之后,点击即可下载。

目录结构

不同版本目录结构有所不同。

bin:solr 的运行脚本

contrib:solr 的一些软件/插件,用于增强 solr 的功能。

dist:该目录包含 build 过程中产生的 war 和 jar 文件,以及相关的依赖文件。

docs:solr 的 API 文档

example:solr 工程的例子目录

example/solr:该目录是一个包含了默认配置信息的Solr的Core目录。

example/multicore:该目录包含了在Solr的multicore中设置的多个Core目录。

example/webapps:该目录中包括一个solr.war,该war可作为solr的运行实例工程。

licenses:solr 相关的一些许可信息

Solr 4. 10. 3 安装

1、根据系统需要下载对应的 Solr 项目,不同版本的 Solr 安装略有不同,Linux 与 Windows 系统安装也略有不同

2、本文安装环境:Windows 10 + Tomcat 9.0+ Solr 4.10.3 + JDK 8 (Tomcat 版本可以是8.0、7.0等)

3、Solr 本身就是一个 Web 应用,所以只需要部署项目,然后做一些配置即可。

安装与配置

1、找到下载好的 Solr 中的 solr-xxx\example\webapps 下面的 solr.war 项目,然后 Ctrl + C 复制它放入到 Tomcat 下的 webapps 目录下。

2、运行 Tomcat 服务器让它自动解压 solr.war 项目,Tomcat 服务器启动完成,solr 应用解压好之后,先关闭 Tomcat 服务器,接着删除原来的 solr.war 文件,来下解压好的 solr 应用即可。

3、找到下载好的 Solr 中的 solr-xxx\example\lib\ext 目录,然后复制 ext 目录下的所有 jar 包,接着放置到 Tomcat 的 webapps 下的 solr 应用中的 lib 目录中 (说白了就是 solr应用还依赖这些扩展的 日志 jar包 )

4、为 Solr 应用配置 solrHome(关于 Solr Home、Solr Core 文档后面会做详细解释,这里先讲配置),新建一个 solrHome 文件夹作为 solr 的 home(主)目录( 位置任意,名字自己取),然后拷贝下载好的 Solr 中的 solr-xxx\example\solr 下面的所有文件到 solrHome 文件夹下。

5、solrHome 目录准备之后,就需要告诉 Tomcat 服务器下的 solr 应用指向这个 solrHome,进入 tomcatXxx\webapps\solr\WEB-INF,修改 web.xml,取消 env-entry 注释,将 env-entry-value 值指向准备好的 solrHome 目录

6、配置 solrCore 的依赖与插件,不使用也是可以的,不过建议添加上,找到下载好的 solr-xxx 下面的 contrib 与 dist 目录,全部复制,然后放置到自己指定的位置去,因为还会在 solrHome 下面的 solrCore 中的配置文件中进行指定它们。

7、如下所示,就把它们两个放在了 solrHome 同级目录中

8、找到 solrHome 下面的 collection1(SolrCore)中的 conf 目录下的 solrconfig.xml 文件打开它

9、然后修改文件中插件和依赖的路径,可以像如下所示使用相对路径,也可以删除 "${xxx}" 这一部分,然后使用绝对路径,注意相对路径的是以 conf 目录为基准,往上走两级,刚好到 contrib 与 dist

10、如果这一步的 solrCore 插件与依赖没有配置成功,则运行时,日志会提示找不到它们,但只是警告,并不影响程序运行

测试运行 Solr

1、启动 Tomcat 服务器,浏览器地址栏访问:localhost:8080/solr

Solr 核心概念

solrHome

SolrHome 是 solr 的核心目录,一个 solrHome 中可以有多个 solr 实例,默认会有一个实例 collection1

SolrHome 目录名称可以自己定义,只需在 solr 应用中的 web.xml 中指定即可

SolrHome 的位置自己定义,但是不建议放到 Tomcat 下,因为随着应用运行时间的逐渐增长,solrCore 中的索引和文档会持续增加。

solrCore

SolrHome 下的 collection1 就是一个默认的 solrCore,可以设置多个,一个 SolrCore 就是一个 solr 的实例

每个实例对外单独的提供索引和文档的增删改查服务,默认实例叫做 collection1

一个 SolrCore 相当于 mysql 中的一个数据库

SolrCore 之间是相互隔离。

SolrCore 中的 conf 目录包含了索引 solr 实例的配置信息。

conf 文件夹下的 solrconfig.xml 配置实例的相关信息,如果使用默认配置可以不用做任何修改。

Apache Solr 全文检索概述 与 Win10 下安装 Solr相关推荐

  1. 在Win10下安装python+tensorflow-gpu-2.4 虚拟环境

    概述 在win10下,已经有了一个anaconda的python+tensorflow1.15环境,然而缺少一个python+tensorflow 2的环境,用虚拟环境的方式将其安装到位. 1 确定t ...

  2. win10 mbr下装linux,在Win10下安装Ubuntu 18.04双系统(MBR+Legacy)

    刚刚在win10下安装了ubantu18.04系统,亲测有效!中途遇到了很多坑,一一为大家避免 以下就是我安装双系统的详细步骤 BIOS引导方式 目前主要的系统引导方式也有两种:传统的LegacyBI ...

  3. win10下安装Ubuntu后,启动时没有win10选项解决方法

    win10下安装Ubuntu后,启动时没有win10选项解决方法 参考文章: (1)win10下安装Ubuntu后,启动时没有win10选项解决方法 (2)https://www.cnblogs.co ...

  4. Docker知识4:如何在win10下安装 / 使用ubuntu ?应用WSL2

    官方文档:Install WSL on Windows 10 | Microsoft Docs 提要: 本文是关于docker的专题讨论,作者用一组文档尽可能保证完整地阐述Docker到底是啥?如何使 ...

  5. win10下安装ubuntu,双系统,免U盘

    win10下安装ubuntu,双系统,免U盘 关键词:win10,ubuntu,双系统,免, U盘 1-6,8 参考:https://www.jianshu.com/p/417c1001a559 7 ...

  6. win10下安装SQLServer2000

    <win10下安装SQLServer2000> 请注意:本机不能装些乱七八糟的流氓软件,如:加密软件等,否则这些软件的进程会导致上述的SETUP\SETUPSQL.EXE能启动但看不到界面 ...

  7. mysql安装最后两项无响应,win10下安装mysql8.0.23 及 “服务没有响应控制功能”问题解决办法...

    win10下安装mysql 1. 官网下载mysql 网址:https://www.mysql.com/downloads/ download页面往下拉:点击下图红框: 按下图指示操作: 下载之后解压 ...

  8. win10下安装多个cuda(cuda9.0和10.0),并自由切换版本

    1.前言 最近想测试下cuda版本的高地是否会影响GPU显存的初始占用,如果低版本的cuda占用显存较少那岂不是非常棒?所以这就牵涉到了多版本cuda共存的问题,网上很多博客只是浅谈了安装过程,我这里 ...

  9. win10下安装Ubuntu18.4双系统(适合小白)

    win10下安装Ubuntu18.4双系统(适合小白) 注:本篇为传统MBR引导方式下安装. 查了很多博客,有的地方说法都不同,导致踩了一些坑.所以大家参考的时候还是得对自己的电脑配置等要具体情况具体 ...

  10. 在Win10下安装Anaconda3,“开始”菜单目录下只有Anconda prompt怎么办

    有些机器(通常是台式机)安装win10后,在此win10环境下安装python3.7版本的Anaconda3,安装完成了,系统环境变量也配置好了,查看"开始"菜单中的Anacond ...

最新文章

  1. php删除数组中指定值的元素
  2. 从java中的hibernate看Ado.net 与NHibernate的关系
  3. 模板匹配—归一化相关系数匹配算法
  4. Andorid的Linux基础教学之四 进程的生死存亡
  5. linux shell 三种自动交互 方法
  6. ffmpeg rtsp转 rtmp
  7. 模块化以及插件化开发个人设计思路
  8. 高数第七版_习题解答_3-1行列式习题
  9. ITK:在没有写访问权的情况下遍历整个图像
  10. 华为内测基于Android 10.0的EMUI 10系统;2019年Q1真无线耳机市场份额,苹果占半壁江山……...
  11. PHP学习记录_基本语法
  12. python--正则表达式 字符串匹配
  13. matlab中count是干什么,matlab编程潮流计算的count值与什么有?
  14. combing string
  15. Dubbo+ZK入门使用
  16. python化学公式配平_Python趣用—配平化学方程式
  17. [POI2008]Mirror Trap
  18. 如何在 Mac 上录制屏幕
  19. Buy and Resell HDU - 6438 贪心
  20. ios越狱,impactor无法使用的替代方案

热门文章

  1. [导入]XACT与X3DAudio整合的问题
  2. 与网络计算机相比,和通信网络相比,计算机网络最本质的功能是什么
  3. html字体_斗鱼关注人数爬取 | 字体反爬的攻与防
  4. 拓端tecdat:matlab用Logistic逻辑回归建模和马尔可夫链蒙特卡罗MCMC方法分析汽车实验数据
  5. 拓端tecdat|R语言使用Bass模型进行手机市场产品周期预测
  6. 12v直流电机并联多大电容_对电容的理解
  7. php 帝国cms discuz,帝国CMS整合Discuz图文教程
  8. Caffe傻瓜系列(7):solver优化方法
  9. pyspark分类算法之随机森林分类器模型实践【randomForestClassifier】
  10. python语言检测模块langid、langdetect使用