Apache Solr 介绍
Apache Solr 介绍
Solr 是什么?
Solr 是一个开源的企业级搜索服务器,底层使用易于扩展和修改的Java 来实现。服务器通信使用标准的HTTP 和XML,所以如果使用Solr 了解Java 技术会有用却不是必须的要求。
Solr 主要特性有:强大的全文检索功能,高亮显示检索结果,动态集群,数据库接口和电子文档(Word ,PDF 等)的处理。而且Solr 具有高度的可扩展,支持分布搜索和索引的复制。
Lucene 是什么?
Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。
目前已经有很多应用程序的搜索功能是基于 Lucene ,比如 Eclipse 帮助系统的搜索功能。Lucene 能够为文本类型的数据建立索引,所以你只要把你要索引的数据格式转化的文本格式,Lucene 就能对你的文档进行索引和搜索。
Solr VS Lucene
Solr 与Lucene 并不是竞争对立关系,恰恰相反Solr 依存于Lucene ,因为Solr 底层的核心技术是使用Apache Lucene 来实现的,简单的说Solr 是Lucene 的服务器化。需要注意的是Solr 并不是简单的对Lucene 进行封装,它所提供的大部分功能都区别于Lucene 。
安装搭建Solr
安装 Java 虚拟机
Solr 必须运行在Java1.5 或更高版本的Java 虚拟机中,运行标准Solr 服务只需要安装JRE 即可,但如果需要扩展功能或编译源码则需要下载JDK 来完成。可以通过下面的地址下载所需JDK 或JRE :
- OpenJDK ( http://java.sun.com/j2se/downloads.html )
- Sun (http://java.sun.com/j2se/downloads.html )
- IBM (http://www.ibm.com/developerworks/java/jdk/ )
- Oracle (http://www.oracle.com/technology/products/jrockit/index.html )安装 步骤请参考相应的帮助文档。
安装中间件
Solr 可以运行在任何Java 中间件中,下面将以开源Apache Tomcat 为例讲解Solr 的安装、配置与基本使用。本文使用Tomcat5.5 解压版进行演示,可在下面地址下载最新版本http://tomcat.apache.org/download-55.cgi
安装Apache Solr
下载最新的Solr
本文发布时Solr1.4 为最新的版本,下文介绍内容均针对该版本,如与Solr 最新版本有出入请以官方网站内容为准。Solr官方网站下载地址:http://www.apache.org/dyn/closer.cgi/lucene/solr/
Solr 程序包 的目录结构
- build :在solr 构建过程中放置已编译文件的目录。
- client :包含了一些特定语言调用Solr 的API 客户端程序,目前只有Ruby 可供选择,Java 客户端叫SolrJ 在src/solrj 中可以找到。
- dist :存放Solr 构建完成的JAR 文件、WAR 文件和Solr 依赖的JAR 文件。
- example :是一个安装好的Jetty 中间件,其中包括一些样本数据和Solr 的配置信息。
- example/etc :Jetty 的配置文件。
- example/multicore :当安装Slor multicore 时,用来放置多个Solr 主目录。
- example/solr :默认安装时一个Solr 的主目录。
- example/webapps :Solr 的WAR 文件部署在这里。
- src :Solr 相关源码。
- src/java :Slor 的Java 源码。
- src/scripts :一些在大型产品发布时一些有用的Unix bash shell 脚本。
- src/solrj :Solr 的Java 客户端。
- src/test :Solr 的测试源码和测试文件。
- src/webapp :Solr web 管理界面。管理界面的Jsp 文件都放在web/admin/ 下面,可以根据你的需要修改这些文件。
Solr 的源码没有放在同一个目录下,src/java 存放大多数文件,src/common 是服务器端与客户端公用的代码,src/test 放置solr 的测试程序,serlvet 的代码放在src/webapp/src 中。
Solr 主目录结构
一个运行的Solr 服务其主目录包含了Solr 的配置文件和数据(Lucene 的索引文件)
Solr 的主目录展开后为如下结构:
- bin :建议将集群复制脚本放在这个目录下。
- conf :放置配置文件。
- conf/schema.xml :建立索引的schema 包含了字段类型定义和其相关的分析器。
- conf/solrconfig.xml :这个是Solr 主要的配置文件。
- conf/xslt :包含了很多xslt 文件,这些文件能将Solr 的XML 的查询结果转换为特定的格式,比如:Atom/RSS。
- data :放置Lucene 产生的索引数据。
- lib :放置可选的JAR 文件比如对Slor 扩展的插件,这些JAR 文件将会在Solr 启动时加载。
发布运行Solr
将apache-solr-1.4.0/dist/apache-solr-1.4.0.war 从安装包中解压到<tomcat home>/webapps 下。WAR 是一个完整的web 应用程序,包括了Solr 的Jar 文件和所有运行Solr 所依赖的Jar 文件,Jsp 和很多的配置文件与资源文件,这里需要注意的是:WAR 文件中不包括Solr 主目录,因此在启动tomcat 之前我们要先指定Solr 的主目录。
将安装程序中的apache-solr-1.4.0/example/solr 文件夹解压到<tomcat homt>/ 下,然后在<tomcat home>/bin/catalina.bat 第一行添加如下内容:
set JAVA_OPTS=%JAVA_OPTS% -Dsolr.solr.home=<tomcat home>/solr
注:Windows 以外操作系统需修改 catalina.sh 文件。
启动tomcat ,apache-solr-1.4.0.war 自动发布为web 应用。
点击链接访问Solr 控制台界面,http://localhost:8080/apache-solr-1.4.0/ ,显示如下界面表示启动成功。
图 1 Solr 欢迎界面
图 2 管理控制台界面
使用Java 接口访问Solr 服务
SolrJ 是Solr 服务器的一个Java 接口,使用该接口再也不同为虑客户端与服务器端交互时格式解析和转换的问题烦恼了,取而代之的是用你熟悉的对象来进行相关的操作,而且随着Solr 的不断升级SolrJ 也会同样提供这些新加入的功能。
SolrJ (Solr1.4 )依赖的Jar 包
- commons-codec-1.3.jar
- commons-fileupload-1.2.1.jar
- commons-httpclient-3.1.jar
- commons-logging-1.0.4.jar
- commons-io-1.4.jar
- geronimo-stax-api_1.0_spec-1.0.1.jar
- solr-solrj-1.4.0.jar
- wstx-asl-3.2.7.jar
- stax-api-1.0.1.jar
- slf4j-api-1.5.5.jar
- slf4j-simple-1.5.5.jar
Apache Solr 介绍的更多相关文章
- Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
- Apache Solr配置
Solr配置 Solr的主要功能是全文检索,该功能分为两个过程:创建索引和对索引进行搜索: 在创建索引之前,需要重点关注两个配置文件:SOLR_HOME/collection1/conf/schema ...
- Apache Solr Velocity模板注入RCE漏洞复现
Apache Solr Velocity模板注入RCE漏洞复现 一.Apache Solr介绍 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通 ...
- 05 Apache Solr: 管理员界面(Admin UI)
为了方便管理员和工程师调整Solr的配置和访问在线文档和其他的帮助,Solr提供了一个Web界面去查看Solr的配置详情,运行查询语句和分析文档字段.这个界面在第三篇里面提到过就是管理员界面 ...
- 03 Apache Solr: 安装和运行
前面介绍了Solr在项目中的使用和构建高度可用.高度可扩展的Solr服务器的一些想法.但是光说不练假把式,现在开始,把Solr运行起来继续深入了解吧! 安装 安装JAVA Apache So ...
- Apache Solr采用Java开发、基于Lucene的全文搜索服务器
http://docs.spring.io/spring-data/solr/ 首先介绍一下solr: Apache Solr (读音: SOLer) 是一个开源.高性能.采用Java开发.基于Luc ...
- Solr系列一:Solr(Solr介绍、Solr应用架构、Solr安装使用)
一.前言 前面已经学习了Lucene的分词.索引详解.搜索详解的知识,已经知道开发一个搜索引擎的流程了.现在就会有这样的一个问题:如果其他的系统也需要使用开发的搜索引擎怎么办呢?这个时候就需要把开发的 ...
- Apache Solr < 8.2.0远程命令执行漏洞(CVE-2019-0193)
介绍:Apache Solr 是一个开源的搜索服务器.Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现. 漏洞原因:此次漏洞出现在Apache Solr的D ...
- 玩转大数据系列之Apache Pig如何与Apache Solr集成(二)
散仙,在上篇文章中介绍了,如何使用Apache Pig与Lucene集成,还不知道的道友们,可以先看下上篇,熟悉下具体的流程. 在与Lucene集成过程中,我们发现最终还要把生成的Lucene索引,拷 ...
随机推荐
- 【集成学习】sklearn中xgboost模块的XGBClassifier函数
# 常规参数 booster gbtree 树模型做为基分类器(默认) gbliner 线性模型做为基分类器 silent silent=0时,不输出中间过程(默认) silent=1时,输出中间过程 ...
- 百练7619-合影效果-2015正式D题-简单排序&输出格式
D:合影效果 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念.如果他们站成一排,男生全部在左(从拍照者的 ...
- [LeetCode&Python] Problem 733. Flood Fill
An image is represented by a 2-D array of integers, each integer representing the pixel value of the ...
- dp——poj1088(Description)
dp可以按照思想大致分为两种,一种是递推的形式,一种是递归的形式(记忆化搜素). 比如求这个题因为无法知道从哪个点开始,所以只能用递归的形式,因为有一个回溯的过程. 但是很多题目既可以用递推也可以用递 ...
- web四则混合运算2
一.设计思路: 先出题(String型)(上周已经实现),再写方法计算结果,加入控制有无乘除法,范围,参与计算数,出题数,页码显示等简单功能,有无括号和分数的计算目前还没能实现. 二.代码: 界面 & ...
- rest-framework之频率控制
rest-framework之频率控制 本文目录 一 频率简介 二 自定义频率类,自定义频率规则 三 内置频率类及局部使用 四 内置频率类及全局使用 五 源码分析 回到目录 一 频率简介 为了控制用户 ...
- WebService 学习记录
-------------------------------------------PS:这个WebService 服务必须一直开着,关闭就没法访问了 Web Service 教程 一.webser ...
- openresty 集成lua-resty-mail +smtp2http 扩展灵活的mail 服务
lua-resty-mail 是一个不错的openresty mail 扩展,我们可以用来进行邮件发送,支持附件功能 smtp2http 是一个smtp 服务,可以将smtp 请求数据转换为http ...
- Modern Data Lake with Minio : Part 2
转自: https://blog.minio.io/modern-data-lake-with-minio-part-2-f24fb5f82424 In the first part of this ...
- 数据格式转换(一)PDF转换技术
PDF(Portable Document Format)文件格式是Adobe公司开发的电子文件格式. 这样的文件格式与操作系统平台无关.这一特点使它成为在Internet上进行电子文档发行 ...