本文概览:介绍了对solr5.5.4的部署和配置中文分词。

1 介绍

lucene只是提供了api接口,在项目中我们可能需要把索引模块独立成一个服务,这可能正是solr最开始的初衷。即solr是对lucene的服务化

2 部署

2.1 部署-版本Solr5.5.4

1、准备

2、下载solr-5.5.4.tar

https://pan.baidu.com/s/1hsMMyKs

3、解压

1

4、使用server目录下文件创建solr服务

2

将server如下文件拷贝到tomcat:

  • 将 server/solr-weapp/的webapp赋值到tomcat/webapps目录下面,并改成solr名字
  • 将server/lib/ext中所有jar复制到tomcat/webapps/solr/WEB-INF/lib
  • 将server/resouces/log4j.properties复制到tomcat/webapps/solr/WEB-INF/classes。如果classes目录不存在,就新建一个目录

5、配置solrhome

  • 在/Users/HeartThinkDo/config目录下创建config,然后创建solrhome目录。
  • 拷贝server/solr下文件到/Users/HeartThinkDo/config/solrhome目录下面。

6、修改tomcat/webapps/solr/WEB-INF/web.xml

将如下内容注释去掉,修改<env-entry-value>的值为自己的solr_home目录。如下

7、启动

(1)启动tomcat。

sh bin/startup.sh

(2)查看

http://127.0.0.1:8080/solr/index.html#/

8、问题

(1)描述

当部署solr-5.5.4到tomcat7时,发现如下错误

java.lang.NoSuchMethodError: javax.servlet.ServletInputStream.isFinished()

(2)解决方法

是因为seveletapi版本低造成的,只要部署到tomcat8上面就可以解决了。

2.2 与版本4xx部署区别

1、配置不同点

和上面部署solr-5.5.4的不同,就在于solr-4xx版本是有solr.war,而最新版面没有了war,而是放置在server/solr-webapp/的webapp下内容,没有了war包,其实相当于解压了war包内容。

3 配置多核

在上面部署完成之后,并无法使用,需要首先创建自己的核(在3xx版本的时候,都会有一个默认的核,在6xx没有了,得自己创建了。

3.1 Core简介

Solr的Core概念相当于数据库中一个表。对于一个数据表包含数据表和索引信息,对于Core也包括正向信息和逆向信息,参考如下 http://www.heartthinkdo.com/?p=1323 

3.2 创建Core

1、创建一个核

在/Users/HeartThinkDo/config/solrhome下面创建firstCore目录

2、将solr解压目录下的example/example-DIH/solr/solr/*  拷贝到 /Users/HeartThinkDo/config/solrhome/firstCore下面

3、重新启动tomcat

3

4、遇到问题

(1)描述

Error loading class ‘solr.DataImportHandler’

(2)解决

将solr解压目录下面的dist/下面的solr-dataimporthandler-5.5.4.jar和solr-dataimporthandler-extras-5.5.4.jar拷贝到tomcat/webapps/solr/WEB-INF/lib下面。

注意:也可以把dist/*.jar包都拷贝到tomcat/webapps/solr/WEB-INF/lib下面

4 配置中文分词

1、下载 “IK Analyzer 2012FF_hf1.zip”

下载地址为:https://code.google.com/archive/p/ik-analyzer/downloads 或者 https://pan.baidu.com/s/1jINyqTw

目前有两个版本,如下

(1)如果solr或lucene的3.x,就下载IKAnalyzer2012_u6.zip版本;

(2)如果是solr或lucene的4.x,就下载IK Analyzer 2012FF_hf1.zip

2、解压文件,移动文件

4

(1)移动IKAnalyzer2012FF_u1.jar

将IKAanalyzerff.jar拷贝到{tomcat安装目录}\webapps\solr\WEB-INF\lib下。

(2)移动IKAnalyzer.cfg.xml和stopword.dic

将这两个文件拷贝到{tomcat安装目录}\webapps\solr\WEB-INF\classes,如果没有classes文件夹,就创建一个。

3、添加新的词库

通过配置IKAnalyzer.cfg.xml完成,IKAnalyzer.cfg.xml存在的作用就是让用户扩充字典,具体步骤如下:

(1)在{tomcat安装目录}\webapps\solr\WEB-INF\classes,建立用户字典extend.dic。需要注意如下:

  • extend.dic词典内容的首行设置为空,因为在首行的词不会加入到扩展词库中;
  • extend.dic词典内容的格式必须保存为UTF-8形式。

(2)配置IKAnalyzer.cfg.xml,设置扩展词典的名称。如下图:

如果配置文件中,用户需要配置多个词典文件,文件名使用“;”号分隔

4、配置Users/HeartThinkDo/config/solrhome/managed-schema 文件,如下

5、测试分词的效果,可以在如下tab页进行测试:

如下对于“Analyse Fieldname / FieldType”选择自己新增的”text_ik”

Snip20170702_111

6、遇到问题

(1)问题描述

Solr5使用IKAnalyzer进行分词时,会出现如下错误 Connection to Solr lost

6

(2)解决

这是因为solr5再使用IK Analyzer 2012FF_hf1.zip,此时就会有问题,可以在  https://github.com/EugenePig/ik-analyzer-solr5 下载针对solr5的IK Analyzer,它是在IK Analyzer 2012FF_hf1基础上改进的,增加了对Lucene 5.1.0的支持。具体步骤如下:

  • 第一步 下载,并进行打包,打包命令如下:

JDK8 ,使用

JDK7,使用

  • 第二步  将生成的ik-analyzer-solr5-5.x.jar 替换掉之前的IKAnalyzer2012FF_u1.jar,即拷贝到{tomcat安装目录}\webapps\solr\WEB-INF\lib。

(3)也可以直接下载编译好的jar包,https://pan.baidu.com/s/1kUAUPvT

参考资料

1、solr wiki: https://wiki.apache.org/solr/FrontPage

 

分类&标签

发表评论

电子邮件地址不会被公开。 必填项已用*标注