centOS6.5+jdk1.7+solr5.5.3+中文分词的安装配置

来源:互联网 发布:移动的网络电视怎么样 编辑:程序博客网 时间:2024/05/22 02:24

一、环境准备

如题所示

二、jdk1.7的安装

1.在/usr/目录下创建java目录 

[root@localhost ~]# mkdir/usr/java[root@localhost ~]# cd /usr/java

2.下载,然后解压

[root@localhost java]# curl -O http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz 

[root@localhost java]# tar -zxvf jdk-7u79-linux-x64.tar.gz

3.设置环境变量

[root@localhost java]# vi /etc/profile

添加如下内容:

#set java environment

JAVA_HOME=/usr/local/jdk1.7.0_79

JRE_HOME=/usr/local/jdk1.7.0_79/jre

CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export JAVA_HOME JRE_HOME CLASS_PATH PATH

三、solr5.5.3的安装配置

1.    去http://apache.opencas.org/lucene/solr/5.5.0/下载Solr安装文件solr-5.5.0.tgz。

2.    将solr-5.5.3.tgz文件放到/tmp目录下,执行如下脚本:    

 

# cd /tmp    

# tar -zxvf solr-5.5.3.tgz // 解压压缩包

3.    创建应用程序和数据目录

 

# mkdir -p /data/solr /usr/local/solr

4.    创建运行solr的用户并赋权

# groupadd solr    

# useradd -g solr solr    

# chown -R solr.solr /data/solr /usr/local/solr

5.    安装solr服务

 

# solr-5.5.3/bin/install_solr_service.sh solr-5.5.3.tgz -d /data/solr -i /usr/local/solr

6.    检查服务状态   

 

# service solr status

将会看到如下输出:  Solrprocess 3359 running on port 8983
{
  "solr_home":"/data/solr/data",
  "version":"5.5.0 2a228b3920a07f930f7afb6a42d0d20e184a943c- mike - 2016-02-16 15:22:52",
  "startTime":"2016-03-22T02:35:52.306Z",
  "uptime":"0 days, 0 hours, 23 minutes, 38 seconds",
  "memory":"32.2 MB (%6.6) of 490.7 MB"}

四、创建集合

与之前版本不同,Solr5.5中默认不再使用schema.xml, 取而代之的是Managed Schema,

Solr可以有多个集合,使用如下命令,创建一个新的集合。我们以solr用户运行以避免任何权限错误。

# su - solr -c "/usr/local/solr/solr/bin/solr create -c item_search -n data_driven_schema_configs"

在这个命令中,item_search是集合的名字,-n指定配置集合。Solr默认提供了3个配置集合。这里我们使用的是schemaless,意思是可以提供任意名字的任意列,类型将会被猜测。

Setup new core instance directory:  /data/solr/data/item_search

你现在已经创建了集合,并可以开始添加数据。默认的架构只需要提供一列:id。没有其他默认列,只有动态列。


修改solr_home的位置: /server/solr-webapp/webapp/WEB-INF/web.xml

 <!--    <env-entry>       <env-entry-name>solr/home</env-entry-name>       <env-entry-value>/put/your/solr/home/here</env-entry-value>       <env-entry-type>java.lang.String</env-entry-type>    </env-entry>   -->

默认是注释掉的,实际上等同于

    <env-entry>       <env-entry-name>solr/home</env-entry-name>       <env-entry-value>../../solr</env-entry-value>       <env-entry-type>java.lang.String</env-entry-type>    </env-entry>
所以如果想新开个solr服务,只需要在solr -webapp同目录的solr目录下新建一个文件夹,拷贝item_searchd的配置,比如文章搜索article_search,用户搜索user_search等等

最后重启solr即可。


五、配置中文分词包

Solr中默认的中文分词是用Lucene的一元分词包。 
现在说明在Solr5.5.3中配置Lucene的IKAnalyzer中文分词包。

1、进入Solr的安装目录,我这里是:/usr/local/solr/solr/server/solr-webapps
把contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-5.5.3.jar包复制到solr的启动目录的lib目录下。

2、修改managed-schema配置文件。此文件在/data/solr/data/item_search/conf/目录下。

<fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100">        <analyzer type="index">         <!-- 此处需要配置主要的分词类 -->          <tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>          <!--            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />          <filter class="solr.LowerCaseFilterFactory"/>           -->          <!-- in this example, we will only use synonyms at query time          <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>        -->          <filter class="solr.SmartChineseWordTokenFilterFactory"/>        </analyzer>        <analyzer type="query">        <!-- 此处配置同上 -->          <tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>              <!--           <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />          <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>          <filter class="solr.LowerCaseFilterFactory"/>          -->          <filter class="solr.SmartChineseWordTokenFilterFactory"/>        </analyzer>      </fieldType> 

<field name="_text_ik" type="text_ik" indexed="true" stored="true" multiValued="true"/>

3、重启solr服务

# ./bin/solr restart

Sendingstop command to Solr running on port 8983...waiting5 seconds to allow Jetty process 50325 to stop gracefully.

Waiting to see Solr listening on port8983 [\] Started Solr server on port 8983 (pid=50745). Happy searching!

4、验证


0 0
原创粉丝点击