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

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

142次阅读
没有评论

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