cd solr-8.11.2/server/solr-webapp/webapp/
jar cvf solr.war ./*
# 将制作的war包复制到tomcat的webapps目录下
cp solr.war /tmp/apache-tomcat-9.0.75/webapps/
# 启动tomcat自动解压solr.war
cd /tmp/apache-tomcat-9.0.75/bin/
./startup.sh
# 修改web.xml配置
cd webapps/solr/WEB-INF/
配置你的solrhome目录
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<!-- 配置你的solrhome目录 -->
<env-entry-value>/tmp/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
注释掉安全认证
创建solrhome目录
cd /tmp/
mkdir -p solrhome
拷贝配置文件及依赖jar
cd solr-8.11.2/server/solr/
cp solr.xml zoo.cfg /tmp/solrhome/
cd /tmp/solr-8.11.2/server/lib
cp metrics-* /tmp/apache-tomcat-9.0.75/webapps/solr/WEB-INF/lib/
cd /tmp/solr-8.11.2/server/lib/ext/
cp * /tmp/apache-tomcat-9.0.75/webapps/solr/WEB-INF/lib/
cd /tmp/solr-8.11.2/dist/
cp solr-dataimporthandler-* /tmp/apache-tomcat-9.0.75/webapps/solr/WEB-INF/lib/
cd /tmp/apache-tomcat-9.0.75/webapps/solr/WEB-INF/
mkdir classes
cd /tmp/solr-8.11.2/server/resources/
cp log4j2* /tmp/apache-tomcat-9.0.75/webapps/solr/WEB-INF/classes/
重新启动tomcat
cd /tmp/apache-tomcat-9.0.75/bin/
./shutdown.sh
./startup.sh
创建solrCore
在Solr中、每一个Core、代表一个索引库、里面包含索引数据及其配置信息。
Solr中可以拥有多个Core、也就是可以同时管理多个索引库、就像mysql中可以有多个数据库一样。
所以SolrCore可以理解成MySQL中的数据库;
cd /tmp/solrhome/
mkdir -p collectionl/data
mkdir -p collectionl/conf
cd collectionl/
touch core.properties
cd /tmp/solr-8.11.2/example/example-DIH/solr/solr/
cp -r conf/* /tmp/solrhome/collectionl/conf/
# 重新启动tomcat
cd /tmp/apache-tomcat-9.0.75/bin/
./shutdown.sh
./startup.sh
安装配置中文分词器
# 项目地址
https://github.com/magese/ik-analyzer-solr
# 阿里云盘jar文件地址
https://www.aliyundrive.com/s/4o2Tn4gdx99
将jar包放入Solr服务的Jetty(server/solr-webapp/webapp/WEB-INF/lib)或Tomcat的webapp/WEB-INF/lib/目录下;
将resources目录下的5个配置文件放入solr服务的Jetty(server/solr-webapp/webapp/WEB-INF/lib)或Tomcat的webapp/WEB-INF/classes/目录下;
① IKAnalyzer.cfg.xml
② ext.dic
③ stopword.dic
④ ik.conf
⑤ dynamicdic.txt
配置Solr的/tmp/solrhome/collectionl/conf/managed-schema,添加ik分词器,示例如下;
<!-- 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>
IKAnalyzer.cfg.xml配置文件说明:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!-- 配置是否加载默认词典 -->
<entry key="use_main_dict">true</entry>
<!-- 配置自己的扩展字典,多个用分号分隔 -->
<entry key="ext_dict">ext.dic;</entry>
<!-- 配置自己的扩展停止词字典,多个用分号分隔 -->
<entry key="ext_stopwords">stopword.dic;</entry>
</properties>
ik.conf文件说明:files=dynamicdic.txt lastupdate=0
files为动态词典列表,可以设置多个词典表,用逗号进行分隔,默认动态词典表为dynamicdic.txt;
lastupdate默认值为0,每次对动态词典表修改后请+1,不然不会将词典表中新的词语添加到内存中。lastUpdate改为long类型,现可以用时间戳了。
dynamicdic.txt 为动态词典在此文件配置的词语不需重启服务即可加载进内存中。 以#开头的词语视为注释,将不会加载到内存中。
hanlp
#hanlp
https://github.com/hankcs/HanLP
#下载词典
http:/nlp.hankcs.com/download.php?file=data
#下载hanlpl的jar包和配置文件
http:/nlp.nankcs.com/download.ohp?file=jar
#下载handlp整合lucene的jar包
https:/github.com/hankcs/.hanlp-lucene-plugin
将hanlp-1.8.4.jar和hanlp-lucene-plugin-1.1.6.jar包放入Solr服务的Jetty(server/solr-webapp/webapp/WEB-INF/lib)或Tomcat的webapp/WEB-INF/lib/目录下;
将hanlp.properties配置文件放入solr服务的Jetty(server/solr-webapp/webapp/WEB-INF/lib)或Tomcat的webapp/WEB-INF/classes/目录下;
将词典data-for-1.7.5上传到/tmp目录下
修改hanlp.properties,配置词典目录
配置Solr的/tmp/solrhome/collectionl/conf/managed-schema,添加hanlp分词器,示例如下;
<fieldType name="text_hanlp" class="solr.TextField">
<analyzer type="index">
<tokenizer class="com.hankcs.lucene.HanLPTokenizerFactory" enableIndexMode="true"/>
</analyzer>
<analyzer type="query">
<!-- 切记不要在query中开启index模式 -->
<tokenizer class="com.hankcs.lucene.HanLPTokenizerFactory" enableIndexMode="false"/>
</analyzer>
</fieldType>