阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Solr4.0的Tomcat部署及Solrj的简单使用教程

454次阅读
没有评论

共计 7703 个字符,预计需要花费 20 分钟才能阅读完成。

Solr 简介

Solr 是一个非常流行的,高性能的开源企业级搜索引擎平台,属于 Apache Lucene 项目。主要功能包括强大的全文检索、结果高亮、切面检索、动态聚类、数据库整合、富文本(例如 Word,PDF)的处理,以及地理信息搜索。Solr 是高度可扩展的,提供分布式检索和索引复制,并为世界上众多的大型网站提供搜索和导航功能。
Solr 使用 Java 编写,可运行于 servlet 容器(如 Tomcat)作为一个独立的全文搜索服务器。Solr 以 Lucene 为核心来创建索引和进行搜索,并提供类似 REST 的 HTTP / XML 和 JSON API,这些 API 可以在任何编程语言中使用。通过 Solr 强大的扩展配置可适应几乎任何类型非 Java 编写应用程序,同时拥有丰富的插件来扩展高级功能。

Solr 特性

  • 先进的全文检索功能
  • 专为高通量的网络流量进行的优化
  • 基于标准的开放接口 – XML,JSON 和 HTTP
  • 综合的 HTML 管理界面
  • 暴露 JMX 接口以方便监控服务器统计
  • 可扩展性 – 有效地复制到其他 Solr 搜索服务器
  • 使用 XML 配置达到灵活性和适配性
  • 可扩展的插件体系结构

Solr 使用 Lucene 并进行了扩展

  • 一个真正的拥有动态域 (Dynamic Field) 和唯一键 (Unique Key) 的数据模式(Data Schema)
  • 对 Lucene 的查询语言进行了强大的扩展
  • 切面搜索和过滤
  • 地理空间信息搜索
  • 先进的,可配置的文本分析
  • 高度可配置、可扩展的缓存机制
  • 性能优化
  • 支持通过 XML 配置
  • 提供管理界面
  • 可监控日志记录
  • 支持高速增量式更新 (Fast incremental Updates) 和快照发布(Snapshot Distribution)
  • 高度可扩展的分布式搜索,片式指数在多台主机
  • JSON,XML,CSV / 分隔的文本和二进制更新格式
  • 使用简单的方法即可从数据库、XML 文件数据、本地磁盘、HTTP 等来源获取数据
  • 基于 Apache Tika 对富文本进行解析和索引(PDF,WORD,HTML 等)
  • Apache UIMA 集成的可配置的元数据提取
  • 支持多个搜索索引

以上的介绍翻译自:http://lucene.apache.org/solr/。大概的翻译,如有错误欢迎指出。

Solr 的运行

从 Solr 的官方网站上下载的 Solr 包里面有一个基于 jetty 的示例运行环境。下载 Solr 包,打开里面的 example 目录,点击里面的 start.jar。在浏览器里面输入 http://localhost:8983/solr, 可以看到如下界面。

Solr4.0 的 Tomcat 部署及 Solrj 的简单使用教程

以上是 Solr 管理控制台的主页,左边是导航。可以使用 http://localhost:8983/solr/#/collection1/query 进行查询结果的查看。这里提供的是一个方便示例界面。现在应该是没有数据的,因为没有向里面添加索引。可以使用 solr 提供的 post.jar 包进行简单的索引添加。这里不再介绍此方法,后面使用 Solrj 进行操作。具体的可以查看 Solr 目录下面的 /docs/tutorial.html 文档。

在 Tomcat 中部署 Solr

上面的运行是 Solr 默认绑定的一个 jetty,如果需要在 tomcat 中运行 solr,方法如下:

1、将 Solr/dist/apache-solr-4.0.0.war 此 war 包复制到 tomcat 的 webapps 目录下面,并重命名成 solr。

2、点击 tomcat/bin/startup.bat 运行 tomcat,这时 tomcat 会解压 solr.war 包到 webapps 目录下面。看到控制台里面会有报错提示,是找不到 solr 的实例运行环境。这时关闭 tomcat。

3、删除 webapps 目录下面的 solr.war 包。将下载的 solr 目录下面的 example 下面的 solr 目录复制到 tomcat 的 webapps/solr 下面。下面的目录结构大概是这样的 webapps/solr/solr/collection1 类似这样的。

4、打开 webapps/solr/WEB-INF/web.xml 文件,在里面添加如下内容。env-entry-value 这个目录是指向上一个步骤中的目录。这里使用的是相对目录(相对于 tomcat 的 bin 目录),也可以使用绝对路径,如 d:/solr 等。步骤 3 中的目录不一定要位于 tomcat 中,只要此步骤中将路径配置正确即可。

<env-entry>
 <env-entry-name>solr/home</env-entry-name>
 <env-entry-value>../webapps/solr/solr</env-entry-value>
 <env-entry-type>java.lang.String</env-entry-type>
 </env-entry>

5、再次运行 tomcat,输入 http://localhost:8080/solr 即可访问在 tomcat 中运行的 solr 环境。

使用 Solrj 操作 Solr

从上面的步骤中可以看出 Solr 提供了一个企业搜索引擎平台的核心,可以通过他的接口进行索引的创建、修改、删除。并提交关键字进行搜索。但如果要真正的投入使用,还是有不和工作需要做,如:

1、对向 Solr 提交索引进行一定的封装以方便业务系统进行操作

2、对搜索进行封装,以方便结果的展现分析等等。

Solrj 是使用 java 编写的一个操作 Solr 的工具,方便于进行索引的更新、搜索结果的获取等等。

在 Solr 的发布包里面有 Solrj 的相关 jar 包。Solrj 需要的 jar 包为:

apache-solr-solrj-4.0.0.jar 和他的依赖包 solr/dist/solrj-lib

如果是使用 maven,可以添加:

<dependency>
 <groupId>org.apache.solr</groupId>
 <artifactId>solr-solrj</artifactId>
 <version>4.0.0</version>
</dependency>

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-05/102135p2.htm

 

Solr3.6.1 在 Tomcat6 下的环境搭建 http://www.linuxidc.com/Linux/2013-01/77664.htm

基于 Tomcat 的 Solr3.5 集群部署 http://www.linuxidc.com/Linux/2012-12/75297.htm

在 Linux 上使用 Nginx 为 Solr 集群做负载均衡 http://www.linuxidc.com/Linux/2012-12/75257.htm

Linux 下安装使用 Solr http://www.linuxidc.com/Linux/2012-10/72029.htm

在 Ubuntu 12.04 LTS 上通过 Tomcat 部署 Solr 4 http://www.linuxidc.com/Linux/2012-09/71158.htm

Solr 实现 Low Level 查询解析(QParser)http://www.linuxidc.com/Linux/2012-05/59755.htm

基于 Solr 3.5 搭建搜索服务器 http://www.linuxidc.com/Linux/2012-05/59743.htm

Solr 3.5 开发应用教程 PDF 高清版 http://www.linuxidc.com/Linux/2013-10/91048.htm

Solr 4.0 部署实例教程 http://www.linuxidc.com/Linux/2013-10/91041.htm

Solr 的详细介绍:请点这里
Solr 的下载地址:请点这里

使用 Solrj 更新索引

使用 Solrj 是首先我们实例化一个 SolrServer,这里使用 HttpSolrServer。我们再创建一个 SolrInputDocument 以方便来添加要索引的数据。这里的 Field 是在 \solr\solr\collection1\conf\schema.xml 里面定义的,如果里面没有定义的字段在这里是不能添加的,除非是使用动态字段。示例代码如下:

String url = "http://localhost:8080/solr"; 
SolrServer server = new HttpSolrServer(url);
SolrInputDocument doc1 = new SolrInputDocument(); 
doc1.addField("id", "1");
doc1.addField("title", "云南 xxx 科技");
doc1.addField("cat", "企业信息门户,元数据,数字沙盘,知识管理");
SolrInputDocument doc2 = new SolrInputDocument(); 
doc2.addField("id", "2");
doc2.addField("title", "胡启稳");
doc2.addField("cat", "知识管理,企业信息门户,云南,昆明");
SolrInputDocument doc3 = new SolrInputDocument(); 
doc3.addField("id", "3");
doc3.addField("title", "liferay");
doc3.addField("test_s", "这个内容能添加进去么?这是动态字段呀");
List<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
docs.add(doc1);
docs.add(doc2);
docs.add(doc3);
server.add(docs);
server.commit();

到此就添加了三个 document 到 solr 的索引库里面。下面介绍如何进行搜索。

使用 Solrj 进行搜索

搜索的第一步和上面一样,先取得一个 SolrServer。然后创建一个 SolrQuery 进行搜索,搜索取得的数据已经封装在 QueryResponse 里面,通过相关 API 获取结果数据。示例代码如下:

String url = "http://localhost:8080/solr"; 
SolrServer server = new HttpSolrServer(url); 
SolrQuery query = new SolrQuery("云南");
try {QueryResponse response = server.query(query);
 SolrDocumentList docs = response.getResults();
 System.out.println("文档个数:" + docs.getNumFound()); 
 System.out.println("查询时间:" + response.getQTime());
for (SolrDocument doc : docs) {System.out.println("id:" + doc.getFieldValue("id")); 
 System.out.println("name:" + doc.getFieldValue("title")); 
 System.out.println();}

Solr 简介

Solr 是一个非常流行的,高性能的开源企业级搜索引擎平台,属于 Apache Lucene 项目。主要功能包括强大的全文检索、结果高亮、切面检索、动态聚类、数据库整合、富文本(例如 Word,PDF)的处理,以及地理信息搜索。Solr 是高度可扩展的,提供分布式检索和索引复制,并为世界上众多的大型网站提供搜索和导航功能。
Solr 使用 Java 编写,可运行于 servlet 容器(如 Tomcat)作为一个独立的全文搜索服务器。Solr 以 Lucene 为核心来创建索引和进行搜索,并提供类似 REST 的 HTTP / XML 和 JSON API,这些 API 可以在任何编程语言中使用。通过 Solr 强大的扩展配置可适应几乎任何类型非 Java 编写应用程序,同时拥有丰富的插件来扩展高级功能。

Solr 特性

  • 先进的全文检索功能
  • 专为高通量的网络流量进行的优化
  • 基于标准的开放接口 – XML,JSON 和 HTTP
  • 综合的 HTML 管理界面
  • 暴露 JMX 接口以方便监控服务器统计
  • 可扩展性 – 有效地复制到其他 Solr 搜索服务器
  • 使用 XML 配置达到灵活性和适配性
  • 可扩展的插件体系结构

Solr 使用 Lucene 并进行了扩展

  • 一个真正的拥有动态域 (Dynamic Field) 和唯一键 (Unique Key) 的数据模式(Data Schema)
  • 对 Lucene 的查询语言进行了强大的扩展
  • 切面搜索和过滤
  • 地理空间信息搜索
  • 先进的,可配置的文本分析
  • 高度可配置、可扩展的缓存机制
  • 性能优化
  • 支持通过 XML 配置
  • 提供管理界面
  • 可监控日志记录
  • 支持高速增量式更新 (Fast incremental Updates) 和快照发布(Snapshot Distribution)
  • 高度可扩展的分布式搜索,片式指数在多台主机
  • JSON,XML,CSV / 分隔的文本和二进制更新格式
  • 使用简单的方法即可从数据库、XML 文件数据、本地磁盘、HTTP 等来源获取数据
  • 基于 Apache Tika 对富文本进行解析和索引(PDF,WORD,HTML 等)
  • Apache UIMA 集成的可配置的元数据提取
  • 支持多个搜索索引

以上的介绍翻译自:http://lucene.apache.org/solr/。大概的翻译,如有错误欢迎指出。

Solr 的运行

从 Solr 的官方网站上下载的 Solr 包里面有一个基于 jetty 的示例运行环境。下载 Solr 包,打开里面的 example 目录,点击里面的 start.jar。在浏览器里面输入 http://localhost:8983/solr, 可以看到如下界面。

Solr4.0 的 Tomcat 部署及 Solrj 的简单使用教程

以上是 Solr 管理控制台的主页,左边是导航。可以使用 http://localhost:8983/solr/#/collection1/query 进行查询结果的查看。这里提供的是一个方便示例界面。现在应该是没有数据的,因为没有向里面添加索引。可以使用 solr 提供的 post.jar 包进行简单的索引添加。这里不再介绍此方法,后面使用 Solrj 进行操作。具体的可以查看 Solr 目录下面的 /docs/tutorial.html 文档。

在 Tomcat 中部署 Solr

上面的运行是 Solr 默认绑定的一个 jetty,如果需要在 tomcat 中运行 solr,方法如下:

1、将 Solr/dist/apache-solr-4.0.0.war 此 war 包复制到 tomcat 的 webapps 目录下面,并重命名成 solr。

2、点击 tomcat/bin/startup.bat 运行 tomcat,这时 tomcat 会解压 solr.war 包到 webapps 目录下面。看到控制台里面会有报错提示,是找不到 solr 的实例运行环境。这时关闭 tomcat。

3、删除 webapps 目录下面的 solr.war 包。将下载的 solr 目录下面的 example 下面的 solr 目录复制到 tomcat 的 webapps/solr 下面。下面的目录结构大概是这样的 webapps/solr/solr/collection1 类似这样的。

4、打开 webapps/solr/WEB-INF/web.xml 文件,在里面添加如下内容。env-entry-value 这个目录是指向上一个步骤中的目录。这里使用的是相对目录(相对于 tomcat 的 bin 目录),也可以使用绝对路径,如 d:/solr 等。步骤 3 中的目录不一定要位于 tomcat 中,只要此步骤中将路径配置正确即可。

<env-entry>
 <env-entry-name>solr/home</env-entry-name>
 <env-entry-value>../webapps/solr/solr</env-entry-value>
 <env-entry-type>java.lang.String</env-entry-type>
 </env-entry>

5、再次运行 tomcat,输入 http://localhost:8080/solr 即可访问在 tomcat 中运行的 solr 环境。

使用 Solrj 操作 Solr

从上面的步骤中可以看出 Solr 提供了一个企业搜索引擎平台的核心,可以通过他的接口进行索引的创建、修改、删除。并提交关键字进行搜索。但如果要真正的投入使用,还是有不和工作需要做,如:

1、对向 Solr 提交索引进行一定的封装以方便业务系统进行操作

2、对搜索进行封装,以方便结果的展现分析等等。

Solrj 是使用 java 编写的一个操作 Solr 的工具,方便于进行索引的更新、搜索结果的获取等等。

在 Solr 的发布包里面有 Solrj 的相关 jar 包。Solrj 需要的 jar 包为:

apache-solr-solrj-4.0.0.jar 和他的依赖包 solr/dist/solrj-lib

如果是使用 maven,可以添加:

<dependency>
 <groupId>org.apache.solr</groupId>
 <artifactId>solr-solrj</artifactId>
 <version>4.0.0</version>
</dependency>

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-05/102135p2.htm

 

Solr3.6.1 在 Tomcat6 下的环境搭建 http://www.linuxidc.com/Linux/2013-01/77664.htm

基于 Tomcat 的 Solr3.5 集群部署 http://www.linuxidc.com/Linux/2012-12/75297.htm

在 Linux 上使用 Nginx 为 Solr 集群做负载均衡 http://www.linuxidc.com/Linux/2012-12/75257.htm

Linux 下安装使用 Solr http://www.linuxidc.com/Linux/2012-10/72029.htm

在 Ubuntu 12.04 LTS 上通过 Tomcat 部署 Solr 4 http://www.linuxidc.com/Linux/2012-09/71158.htm

Solr 实现 Low Level 查询解析(QParser)http://www.linuxidc.com/Linux/2012-05/59755.htm

基于 Solr 3.5 搭建搜索服务器 http://www.linuxidc.com/Linux/2012-05/59743.htm

Solr 3.5 开发应用教程 PDF 高清版 http://www.linuxidc.com/Linux/2013-10/91048.htm

Solr 4.0 部署实例教程 http://www.linuxidc.com/Linux/2013-10/91041.htm

Solr 的详细介绍:请点这里
Solr 的下载地址:请点这里

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计7703字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7962975
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...