linux全文solr7.0版本搭建(ik分词)

系统:centos7

软件:solr7.0,IK分词

1、首先关闭防火墙,防火墙开启会导致很多意想不到的问题,当然,如果你是老鸟,请忽略。

1.1 查看当前linux的版本

[root@iZbp14go5jphjybw4d1r44Z ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)

可以看到本机是centos7版本

1.2 centos7关闭防火墙:


systemctl stop firewalld.service

禁止开机启动:


systemctl stop firewalld.service

1.3 如果你的linux版本是centos6,可以这样关闭:

servcie iptables stop 

禁止开机启动:

chkconfig iptables off  

2、关闭selinux,selinux是一个 Linux 内核模块,也是 Linux 的一个安全子系统

vi /etc/selinux/config 

修改 SELINUX=disabled 重新启动。

3、安装JDK1.8环境

3.1 下载JDK安装包

wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm?AuthParam=1533109505_7c3fe96b586d7a6b972963c3acbcf3f3

如果链接失效,可以去官网下载http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html

3.2 赋权

chmod 777 jdk-8u144-linux-x64.rpm

3.3 安装

rpm -ivh jdk-8u144-linux-x64.rpm

默认的安装路径是/usr/java/

3.4 配置环境变量

vim /etc/profile

 在文本末最后一行添加如下代码:

export JAVA_HOME=/usr/java/jdk1.8.0_144

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

保存退出。

使配置生效:

source /etc/profile

3.5 检查是否安装成功

[root@iZbp14go5jphjybw4d1r44Z deployment]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

说明安装成功。

4、安装solr

4.1 下载solr7.0 版本

wget http://mirror.bit.edu.cn/apache/lucene/solr/7.4.0/solr-7.4.0.tgz

4.2 解压

tar -zxvf solr-7.4.0.tgz

4.3 创建core

/deployment/solr-7.4.0/bin/solr create -force -c test_core

4.4 启动solr服务

/deployment/solr-7.4.0/bin/solr start -p 8080 -force

-p 是规定端口号

-force是使用root用户启动

这个时候打开http://server_ip:8080 应该可以访问

5、配置 ik中文分词器

5.1 下载ik中文分词器

wget https://download.loubobooo.com/Solr/ikanalyzer-solr5.5.zip

 5.2 解压

unzip ikanalyzer-solr5.5.zip

    如果没有unzip的话,输入 yum -y install unzip 来进行安装

5.3 下载jdbc mysql驱动

wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz

5.4 解压

tar -zxvf mysql-connector-java-5.1.46.tar.gz

5.5 复制到solr目录

cp mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar /deployment/solr-7.4.0/server/solr-webapp/webapp/WEB-INF/lib

4.6 配置中文分词器IK Analyzer

        4.6.1 进入IK Analyzer文件夹

cd ikanalyzer-solr5

        4.6.2 把IKAnalyzer依赖的jar包添加到solr工程中

cp *.jar /deployment/solr-7.4.0/server/solr-webapp/webapp/WEB-INF/lib/

        4.6.3 创建所需文件夹

mkdir /deployment/solr-7.4.0/server/solr-webapp/webapp/WEB-INF/classes

        4.6.4 复制分词的配置文件到solr目录下

 cp ext.dic IKAnalyzer.cfg.xml stopword.dic /deployment/solr-7.4.0/server/solr-webapp/webapp/WEB-INF/classes

        4.6.5 配置分词器

 vi  /deployment/solr-7.4.0/server/solr/test_core/managed-schema

添加下面代码

 <!-- 我添加的IK分词 -->
    <fieldType name="text_ik" class="solr.TextField">
        <analyzer type="index">
            <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/>
        </analyzer>
    </fieldType>

4.7 配置数据源,使用jdbc。

vi /deployment/solr-7.4.0/server/solr/test_core/data-config.xml

   添加如下代码(其中的url,user,password要替换成你自己的数据库信息)

<dataConfig>
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://ip:3306/database" user="root" password="123456" batchSize="-1" />
  <document>
       <entity name="post_content" query="select * from post_content" deltaImportQuery="select * from post_content where id='${dih.delta.id}'" deltaQuery="select id from post_content where FROM_UNIXTIME(createtime) > '${dataimporter.last_index_time}' ">
                        <field column="id" name="id"/>
                        <field column="post_content" name="post_content"/>

                       <field column="likes" name="likes"/>
     </entity>
  </document>
</dataConfig>

 4.8 继续添加业务域(这里我添加post_content和likes,id原来文件中已经添加了)

 <field name="post_content" type="text_ik" indexed="true" stored="true"/>
 <field name="likes" type="string" indexed="false" stored="true"/>

4.9 加入同步数据的jar包

到solr解压包下的dist目录下solr-dataimporthandler-5.4.1.jar和solr-dataimporthandler-extras-5.4.1.jar这两个jar包,同样放到部署solr的lib目录下。

cd /deployment/solr-7.4.0/dist

cp solr-dataimporthandler-7.4.0.jar solr-dataimporthandler-extras-7.4.0.jar /deployment/solr-7.4.0/server/solr-webapp/webapp/WEB-INF/lib/

# 开启导入数据功能(原来被solr禁用的)

vi /deployment/solr-7.4.0/server/solr/test_core/conf/solrconfig.xml

添加下面一段

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
  <lst name="defaults">
      <str name="config">data-config.xml</str>
  </lst>
</requestHandler>

4.10 重启solr服务

/deployment/solr-7.4.0/bin/solr stop -force

/deployment/solr-7.4.0/bin/solr start -p 8080 -force

5、测试

5.1 测试数据导入

打开全文admin,设置全量导入,点击Execute

一段时间后,可以看见128395条数据导入完成

5.2 测试Ik分词是否成功

5.3 测试搜索

可以看到已经可以查到数据,而且速度很快,如果配置过程中遇到问题,可以点击logging查看错误原因。

猜你喜欢

转载自blog.csdn.net/u013091013/article/details/81331594