文章目录
- 一.jen中安装solr8.4.0
- solr 配置IK中文分词
- 二.tomcat下部署solr
- 中文分析器配置
- 业务字段配置
一.jen中安装solr8.4.0
- docker拉取solr
docker pull solr:8.4.0
- 创建并运行的solr容器
docker run --name solr -d -p 8983:8983 solr:8.4.0
1.run 运行容器
2.-d 后台运行
3.-p 容器端口和宿机端口映射
4.-- name 容器名称
5. solr 指镜像名称
注意:如果没有开启防火墙则跳过,如果开启防火墙了需要执行下面的代码;
运行之后我们防火墙放行端口号的命令:
firewall-cmd --zone=public --add-port=8983/tcp --permanent
加载刚刚防火墙放行端口:
firewall-cmd --reload
使用服务器的需要去安全组设置端口即可:
- 创建核心
docker exec -it --user=solr solr bin/solr create_core -c Ik_core
之后我们可以在浏览器输入IP:8389 看看有没有页面出现;
solr 配置IK中文分词
jar的百度网盘:https://pan.baidu.com/s/1ExTcCVfn_zltmGJDhxWhgQ
提取码:zxxp
- 推荐在本地先解压然后把四个jar传到linux //usr/local/IK (IK需要自己创建文件夹)
mkdir -p /usr/local/IK
在这里放jar同时我们从本地拿需要用到文件/jar 到在这里
cd /usr/local/IK
docker cp ik-analyzer-8.3.0.jar solr:/opt/solr-8.4.0/server/solr-webapp/webapp/WEB-INF/lib/
docker cp ik-analyzer-solr7-7.x.jar solr:/opt/solr-8.4.0/server/solr-webapp/webapp/WEB-INF/lib/
docker cp solr-dataimporthandler-8.4.0.jar solr:/opt/solr-8.4.0/server/solr-webapp/webapp/WEB-INF/lib/
docker cp solr-dataimporthandler-extras-8.4.0.jar solr:/opt/solr-8.4.0/server/solr-webapp/webapp/WEB-INF/lib/
复制配置文件:
- 使用root用户(超级管理)进入solr 的容器里创建文件夹
docker exec -it --user=root solr /bin/bash
cd /opt/solr-8.4.0/server/solr-webapp/webapp/WEB-INF
创建文件夹(classes)
mkdir classes
退出容器:
exit
docker cp IKAnalyzer.cfg.xml solr:/opt/solr-8.4.0/server/solr-webapp/webapp/WEB-INF/classes/
- 修改managed-schema:进去solr的容器因为创建核心名称默认的路径是在/var/solr/data/核心名称 而solr 默认在opt/solr-8.4.0/
因此我们要到solr 的容器命令:
docker exec -it --user=root solr /bin/bash
- 下载vim编辑:
apt-get update
apt-get install vim
cd /var/solr/data/Ik_core/conf
vi managed-schema
在最下面添加:
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
vi solrconfig.xml
在最下面添加:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
ok,配置IK 完成,退出容器:exit
- 重启solr 的容器:
docker restart solr
在浏览器输入IP:8983
二.tomcat下部署solr
链接:https://pan.baidu.com/s/1dyI24sQaMqhB8xav51y6_A
提取码:uagp
复制这段内容后打开百度网盘手机App,操作更方便哦
-
需要的安装包:apache-tomcat-8.0.5.tar.gz、solr-4.10.3.tgz.tgz(jdk自行安装)
tomcat 8.0以上 jdk1.8以上
-
解压tomcat并创建solr文件夹
tar -zxf apache-tomcat-8.0.5.tar.gz
mkdir /usr/local/solr
- 将tomcat解压后的文件夹拷贝到solr的tomcat文件夹中
cp apache-tomcat-8.0.5 /usr/local/solr/tomcat -r
- 把solr的压缩包上传到服务器后并解压,然后把
/root/solr-4.10.3/dist/solr-4.10.3.war
包部署到tomcat下。并改名为solr.war
tar -zxf solr-4.10.3.tgz.tgz
cp solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war
- 解压war包。启动tomcat自动解压。然后关闭tomcat,删除war包
./startup.sh
问题:
用./startup.sh启动时候提示权限不够
chmod u+x *.sh
- 把
/root/solr-4.10.3/example/lib/ext
目录下所有的jar包复制到solr工程中
进入之前解压缩的文件中solr-4.10.3\example\lib\ext下的jar 拷贝到solr工程中的web-inf\lib目录下
cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
- 创建
solrhome
文件夹,该文件夹用来存放solr服务器所有配置文件。将/root/solr-4.10.3/example中的solr文件夹拷贝至solrhome
cp -r solr /usr/local/solr/solrhome
- 关联solr数据存放的地址,需要修改工程中solr的web.xml文件
<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>
- 启动tomcat
中文分析器配置
-
把IK-Analyzer分析器的文件夹上传到服务器
-
把分析器的jar包添加到solr工程中
cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
- 把IKAnalyzer需要的扩展词典及停用词词典、配置文件复制到solr工程的WEB-INF/classes文件夹中
cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
- 修改solrhome\collection1\conf目录下的schema.xml文件,配置一个fieldType,使用IK分词,在
solrhome/collection1/conf/schema.xml
中配置filedType
<fieldType name="text_ik" class="solr.TextField" >
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
业务字段配置
- 在
solrhome/collection1/conf/schema.xml
中配置,根据业务需要选择相应的字段对应solr的字段
<field name="landlady_id" type="text_ik" indexed="true" stored="true" />
<field name="province_id" type="text_ik" indexed="true" stored="true" />
<field name="city_id" type="text_ik" indexed="true" stored="true" />
<field name="area_id" type="text_ik" indexed="true" stored="true" />
<field name="province_name" type="text_ik" indexed="true" stored="true" />
<field name="city_name" type="text_ik" indexed="true" stored="true" />
<field name="area_name" type="text_ik" indexed="true" stored="true" />
<field name="residential_quarters" type="text_ik" indexed="true" stored="true" />
<field name="street_name" type="text_ik" indexed="true" stored="true" />
<field name="lou_no" type="text_ik" indexed="true" stored="true" />
<field name="house_no" type="text_ik" indexed="true" stored="true" />
<field name="house_type" type="text_ik" indexed="true" stored="true" />
<field name="dept_info" type="text_ik" indexed="true" stored="true" />
<field name="pid" type="text_ik" indexed="true" stored="true" />
<field name="longitude" type="text_ik" indexed="true" stored="true" />
<field name="latitude" type="text_ik" indexed="true" stored="true" />
<field name="state" type="text_ik" indexed="true" stored="true" />
<field name="del_flag" type="text_ik" indexed="true" stored="true" />
<field name="create_time" type="text_ik" indexed="true" stored="true" />
<field name="update_time" type="text_ik" indexed="true" stored="true" />
<field name="orientation" type="text_ik" indexed="true" stored="true" />
<field name="landlady_name" type="text_ik" indexed="true" stored="true" />
<field name="landlady_telphone" type="text_ik" indexed="true" stored="true" />
<field name="operator_id" type="text_ik" indexed="true" stored="true" />
<field name="signing_start_time" type="text_ik" indexed="true" stored="true" />
<field name="signing_end_time" type="text_ik" indexed="true" stored="true" />
<field name="landlady_price" type="double" indexed="true" stored="true" />
- 重启tomcat