当前位置: 首页 > 架构相关 > solr搜索服务搭建笔记

solr搜索服务搭建笔记

写在前面,自己的博客中用到的搜索服务就是solr,因为公司在用,自己以前搭建过也比较熟悉。考虑过使用shpinx,在很早刚工作的时候也用过,但是相比solr显然solr的效率更高,我也更熟悉,中文分词更好配一些。其实哪个搜索服务都能满足大部分的需求,主要就是看你的熟悉程度了,萝卜白菜,各有所爱。这一篇主要记录搭建过程,下一篇 solr搜索服务配置笔记,与生产项目结合使用 主要介绍配置

一、服务搭建需要环境以及软件(最好下载到tmp目录下):

1、centos6.5

当然其他的linux环境也可以

2、tomcat7.0.63

下载地址:http://tomcat.apache.org/download-70.cgi  我看了下现在到7.0.64了,不过我相信也没有问题的

3、jdk-7u79

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

4、solr-5.2.1

下载地址:http://apache.fayea.com/lucene/solr/5.2.1/ 


二、安装jdk

查看本机上是否以及安装有jdk

java -version

java version "1.7.0_79"

Java(TM) SE Runtime Environment (build 1.7.0_79-b15)

Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

安装步骤:

tar zxvf jdk-7u79-linux-x64.tar.gz
mv jdk1.7.0_79 /usr/
vi /etc/profile

在profile文件的最后一行,配置如下环境变量

JAVA_HOME=/usr/jdk1.7.0_79/
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

保存退出后执行如下命令,立即生效:

source /etc/profile

然后再java -version看下jdk是否安装成功,如果没有成功你就不用看这篇文章了。


三、安装tomcat

只需要两部,安装完后先不要启动,下面安装完solr后再启动,理由后面有。

tar zxvf apache-tomcat-7.0.63.tar.gz
mv apache-tomcat-7.0.63 /usr/local/tomcat


四、安装solr

1、解压并移动,我这里是移动到了opt目录下,当然你也可以移到你想要移动的目录。

tar -zxvf solr-5.2.1.tgz
mv /tmp/solr-5.2.1  /opt/solr

2、把solr.war复制到tomcat,并修改下tomcat的配置文件。

makdir -p /opt/tomcat/webapps
cp /opt/solr/server/webapps/solr.war /opt/tomcat/webapps/  
vi /usr/local/tomcat/conf/server.xml

找到下面这句话,将appBase改成/opt/tomcat/webapps,如下面所示。:

<Host name="localhost"  appBase="/opt/tomcat/webapps" unpackWARs="true" autoDeploy="true">

当然你可以也应该修改一下默认的端口,你自己知道就行,没必要昭告天下。还是这个文件,将port修改一下。我这里修改成5218

<Connector port="5218" protoco="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

当...然,为了安全。你还可以配置下不允许远程访问,那你需要研究下server.xml这个文件了。

3、修改solr home的配置 值改为/opt/solr/server/solr注意:要把这段内容的注释去掉,否则不生效):

vi /opt/tomcat/webapps/solr/WEB-INF/web.xml
<env-entry>  
   <env-entry-name>solr/home</env-entry-name>  
   <env-entry-value>/opt/solr/server/solr</env-entry-value>  
    <env-entry-type>java.lang.String</env-entry-type>  
</env-entry>



4、复制solr/server/lib/ext下的jar包到/tomcat/.../lib/下:

cp /opt/solr/server/lib/ext/*.jar  /opt/tomcat/webapps/solr/WEB-INF/lib/

5、在tomcat solr下创建classpath

log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地.通过它来灵活地进行配置,而不需要修改应用的代码。在tomcat solr下创建classpath,并把server/resources/log4j.properties复制到classpath中。:

mkdir -p /opt/tomcat/webapps/solr/classpath  
cp/opt/solr/server/resources/log4j.properties /opt/tomcat/webapps/solr/classpath/

上面的这些做完后就可以启动下tomcat了,启动和停止的命令如下:

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

接下来访问solr admin页面,在浏览器中输入http://localhost:5218/solr/,访问如下,成功了,则说明你已经简单安装完成了 ,如果没成功...那么...你可能遗忘了什么步骤^_^

五、新增实例项目

在Core Admin处增加一个core 比如proj,新增之前记得要把一些基本的配置放到要新增的项目下,否则会报错

cd /opt/solr/server/solr
mkdir proj
cd proj
mkdir conf data
cp -r ../configsets/basic_configs/conf/* conf

然后回到admin界面进行添加(红框框里面都是填写proj)如果添加失败,那么...你可能遗忘了什么步骤^_^。

六、整合中文分词(使用mmseg4j)

如果你的solr版本是4.+的话也可以使用IK Analyzer 2012FF_hf1这个中文分词,我很久以前的solr就是用的这个(我还蛮喜欢它分出来的词的,反而mmseg4j分出来的不太好,太碎,不过如果用词库的话会好些),但是这次我尝试用的时候是行不通的,原来是不支持了:

在百度网盘上下载分词地址:http://pan.baidu.com/s/1qWJY3gC

上传到服务器后进行与solr的整合,并修改schema.xml配置文件

unzip mmseg4j-solr-2.3.0-with-mmseg4j-core.zip -d mmseg4j
cp mmseg4j/*.jar /opt/tomcat/webapps/solr/WEB-INF/lib
vim /opt/solr/server/solr/proj/conf/schema.xml

将下面代码添加进去:

<fieldtypename="textComplex"class="solr.TextField"positionIncrementGap="100">
    <analyzer>
        <tokenizerclass="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" 
        mode="complex"dicPath=""/>
    </analyzer>
</fieldtype>
<fieldtypename="textMaxword"class="solr.TextField"positionIncrementGap="100">
    <analyzer>
        <tokenizerclass="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory"mode="max-word" />
    </analyzer>
</fieldtype>
<fieldtypename="textSimple"class="solr.TextField"positionIncrementGap="100">
    <analyzer>
        <tokenizerclass="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" 
        mode="simple"dicPath="" />
    </analyzer>
</fieldtype>

如上,fieldtypename是自己自定义的,在你需要做中文分词的字段需要会用到,dicPath为自定义分词目录,你可以下载词库,当然你也可以忽略。

最后再次重启下tomcat

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

之后进入solr admin后台,测试下分词工具是否能用,看下面的截图,展示了如何测试,如果在上面的配置过程中留意了一点点,那么肯定会看的懂:

到这里,solr的安装就完成了,下一篇我会整理下solr在项目中配置的笔记,让solr在项目中真正的用起来。


转载时请以 超链接的形式 注明:转自Ferman

                  

About me