目录
IK中文分词器的添加,下载地址点击-->:ik-analyzer-solr7(支持solr8)
solr搭建步骤--环境准备
输入:java -version 检查是否已安装jdk环境
solr搭建步骤--安装
- 将solr和tomcat安装包上传到/root/soft目下 使用tar命令解压 ,solr官网下载地址点击-->:solr7.7.1官方下载链接
[root@localhost soft]# tar -xzf solr-7.7.1.tgz [root@localhost soft]# tar -xzf apache-tomcat-8.5.37
- 把solr部署到tomcat下,在/usr/local下创建solr文件夹,将解压的tomcat复制到solr目录下,并给tomcat重命名
[root@localhost soft]# mkdir /usr/local/solr [root@localhost soft]# cp apache-tomcat-8.5.37 /usr/local/solr/ -r [root@localhost soft]# cd /usr/local/solr/ [root@localhost solr]# mv apache-tomcat-8.5.37/ tomcat8.5
- 在tomcat,webapps目录下创建solr目录, 并将solr-7.7.1/server/solr-webapp/webapp/* 目录下的所有内容拷贝过去
[root@localhost solr]# cd /usr/local/solr/tomcat8.5/webapps/ [root@localhost webapps]# mkdir solr [root@localhost webapps]# cp /root/soft/solr-7.7.1/server/solr-webapp/webapp/* /usr/local/solr/tomcat8.5/webapps/solr/ -r
- 将【solr-7.7.1\server\lib\ext】下的所有jar包以及【solr-7.7.1\server\lib】下所有metrics-开头的jar包(一共有5个) 和gmetric4j-1.0.7.jar拷贝到【tomcat8.5\webapps\solr\WEB-INF\lib】
[root@localhost webapps]# cd /root/soft/solr-7.7.1/server/lib/ext/ [root@localhost ext]# cp * /usr/local/solr/tomcat8.5/webapps/solr/WEB-INF/lib/ [root@localhost lib]# cp metrics-* /usr/local/solr/tomcat8.5/webapps/solr/WEB-INF/lib/ root@localhost lib]# cp gmetric4j-1.0.7.jar /usr/local/solr/tomcat8.5/webapps/solr/WEB-INF/lib/
- 将【solr-7.7.1\server\resources】下的log4j2.xml配置文件拷贝到 【tomcat8.5\webapps\solr\WEB-INF\classes】下如果WEB-INF下没有classes文件那么就创建一个classes文件夹
[root@localhost WEB-INF]# mkdir classes [root@localhost WEB-INF]# cp /root/soft/solr-7.7.1/server/resources/log4j2.xml classes/
- 在【user\local\solr】下新建一个文件夹【solrhome(文件夹名称可以任意命名)】, 将【solr-7.7.1\server\solr】下的所有文件拷贝到刚刚创建的solrhome中。
[root@localhost resources]# cp /root/soft/solr-7.7.1/server/solr/* /usr/local/solr/solrhome/ -r
- 修改【tomcat8.5\webapps\solr\WEB-INF】下的web.xml,找到如下代码,如果没有则自己添加如下代码:
<!-- 修改solrhome路径为自己所创建路径 --> <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/usr/local/solr/solrhome</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
- 同时将web.xml里面的 <security-constraint>安全验证内容注释掉
solr启动
启动tomcat:
[root@localhost bin]# ./startup.sh
在浏览器中输入地址:http://192.168.17.133:8080/solr/index.html 即可访问solr管理界面
IK中文分词器
IK中文分词器的添加,下载地址点击-->:ik-analyzer-solr7(支持solr8)
点击Add Core这个时候会报错,但是在solrhome下依旧会创建collection
解决办法:将server/solr/configsets/_default/conf/下的内容全部复制到创建的collection下
[root@localhost collection]# cp /root/soft/solr-7.7.1/server/solr/configsets/_default/conf/ ../collection/ -r
- 指定中文分析器,把 ik-analyzer-7.7.1.jar 添加到solr工程的lib目录下/usr/local/solr/tomcat8.5/webapps/solr/WEB-INF/lib
- 把扩展词典、配置文件放到solr工程的WEB-INF/classes目录下。
`ik.conf`文件说明: ```console files=dynamicdic.txt lastupdate=0 ``` 1. `files`为动态词典列表,可以设置多个词典表,用逗号进行分隔,默认动态词典表为`dynamicdic.txt`; 2. `lastupdate`默认值为`0`,每次对动态词典表修改后请+1,不然不会将词典表中新的词语添加到内存中。 <s>`lastupdate`采用的是`int`类型,不支持时间戳,如果使用时间戳的朋友可以把源码中的`int`改成`long`即可; </s> `2018-08-23` 已将源码中`lastUpdate`改为`long`类型,现可以用时间戳了。
- 指定中文分析器,将如下配置信息添加到managed-schema中
<!-- ik分词器 --> <fieldType name="text_ik" class="solr.TextField"> <analyzer type="index"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType>
- 重启tomcat,即可。
- 重新启动tomcat,再次访问solr,并测试IK分词器,在Filed Value下输入文字,点击Analyse Values
导入数据库数据到solr
mysql官方下载地址点击-->:mysql5.1.47官方下载链接
- 点击导入数据,显示如上图所示错误,因此需要先进行配置 1.在/usr/local/solr/solrhome/collection/conf目录下创建一个文件data-config.xml,与solrconfig.xml同级
- 修改/usr/local/solr/solrhome/collection/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>
- 打开data-config.xml文件,配置相关的数据库属性,即我们要导入那张表的哪些字段,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test2_ru?autoReconnect=true" user="root" password="123456" batchSize="-1" /> <document> <entity name="user" query="select * from user"> <field column="id" name="id" /> <field column="username" name="username" /> <field column="number" name="number" /> <field column="gender" name="gender" /> </entity> </document> </dataConfig>
- 将solr-7.7.1\dist目录下的solr-dataimporthandler-7.7.1.jar、solr-dataimporthandler-extras-7.7.1.jar 还有本地数据库驱动包mysql-connector-java-5.1.47.jar全部复制到 solr/tomcat8.5/webapps/solr/WEB-INF/lib下
- 重启tomcat,添加字段方式如下图,name需要和data-config.xml中配置的field中的name字段一致
- 添加完成,即可点击Dataimport导入数据