文章目录
1, jcseg项目说明
码云地址: https://gitee.com/lionsoul/jcseg
github地址: https://github.com/lionsoul2014/jcseg/
百度盘jar包下载: 链接提取码:abcd https://pan.baidu.com/s/1pzB8SFuqJLrbRO2MyySd1Q
a, solr4.x配置说明
b, 下载 v1.9.7-release tag版本的代码
直接跳转下载链接:https://gitee.com/lionsoul/jcseg/repository/archive/v1.9.7-release
2, 下载源码,编译jar包
a, 修改lucene版本号
b, 解开被注释的v4x代码,并注释v5x代码
c, maven打包
d, 提取target里面的jar包
3, 配置solr加载插件,并测试
第三方jar加载方式1:/opt/cloudera/parcels/CDH/lib/bigtop-tomcat/lib/
按照启动参数,把jar包放到 catalina.home的lib目录下
- cdh solr 是通过tomcat启动的, 所在路径为:
-Dcatalina.home=/opt/cloudera/parcels/CDH-5.12.0-1.cdh5.12.0.p0.29/lib/bigtop-tomcat
[root@test-c6 myjars]# ps -ef|grep solr
solr 578 2314 9 Dec01 ? 01:33:10 /usr/java/jdk1.8.0_211-amd64/bin/java ...
-Dsolr.solr.home=/var/lib/solr
-classpath /opt/cloudera/parcels/CDH-5.12.0-1.cdh5.12.0.p0.29/lib/bigtop-tomcat/bin/bootstrap.jar
-Dcatalina.base=/var/lib/solr/tomcat-deployment
-Dcatalina.home=/opt/cloudera/parcels/CDH-5.12.0-1.cdh5.12.0.p0.29/lib/bigtop-tomcat
org.apache.catalina.startup.Bootstrap start
[root@test-c6 myjars]# ll /opt/cloudera/parcels/CDH
lrwxrwxrwx 1 root root 28 Nov 30 09:29 /opt/cloudera/parcels/CDH -> CDH-5.12.0-1.cdh5.12.0.p0.29
######/var/lib/solr/tomcat-deployment/webapps/solr/WEB-INF/lib/ 不行(每次更新会被覆盖所有jar包,不适合放)
#放在/opt/cloudera/parcels/CDH/lib/bigtop-tomcat/lib/, 是父级目录,会被优先加载
[root@test-c6 myjars]# ls /var/lib/solr/tomcat-deployment/webapps/solr/WEB-INF/lib/ |grep jcseg
jcseg-analyzer-1.9.7.jar
jcseg-core-1.9.7.jar
第三方jar加载方式2:/var/lib/solr/lib
- $SOLR_HOME/lib, $INSTANCEDIR/lib
注:默认不存在这个目录,需要手动创建,并把jar包拷贝到里面
- 服务启动日志: stderr.log
创建测试用的solr集合
#修改solrconfig.xml, 添加jar包所在路径
[root@test-c6 myjars]# grep myjars /var/lib/solr/t2/conf/solrconfig.xml
<lib dir="/var/lib/solr/myjars" regex=".*\.jar" />
#
#把jar包放到指定路径: solr集合如果设置多个分片,需要把jar包分发到其他服务器
[root@test-c6 myjars]# ls /var/lib/solr/myjars
jcseg-analyzer-1.9.7.jar jcseg-core-1.9.7.jar
#1, 修改schema.xml, 添加中文解析字段
[root@test-c6 myjars]# grep textComplex /var/lib/solr/t2/conf/schema.xml -A 4
<field name="my_text" type="textComplex" indexed="true" stored="true"/>
--
<fieldType name="textComplex" class="solr.TextField">
<analyzer>
<tokenizer class="org.lionsoul.jcseg.analyzer.v4x.JcsegTokenizerFactory" mode="complex" jsceg_loadsyn="1" />
</analyzer>
</fieldType
#加载同级目录下的stopwords, synonyms.txt
<fieldType name="my_text2" class="solr.TextField" >
<analyzer type="index">
<tokenizer class="org.lionsoul.jcseg.analyzer.v4x.JcsegTokenizerFactory" mode="complex"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
</analyzer>
<analyzer type="query">
<tokenizer class="org.lionsoul.jcseg.analyzer.v4x.JcsegTokenizerFactory" mode="complex"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
</analyzer>
</fieldType>
#1, 创建solr 集合配置,上传配置到zk ,并创建集合
collection_name=t2
solrctl instancedir --generate $collection_name /var/lib/solr/$collection_name
solrctl instancedir --create $collection_name /var/lib/solr/$collection_name
# solrctl instancedir --update test /var/lib/solr/config/test
solrctl collection --create $collection_name #-s 2 -r 2 -m 2
上传中文字典文件
- 下载的源码包中,包含有字典文件
- 查看字典文件放置路径
[root@test-c6 myjars]# pwd
/var/lib/solr/myjars
[root@test-c6 myjars]# ls
jcseg-analyzer-1.9.7.jar jcseg-core-1.9.7.jar lexicon
[root@test-c6 myjars]# ls lexicon/
lex-admin.lex lex-cn-mz.lex lex-dname-2.lex lex-festival.lex lex-ln-adorn.lex lex-net.lex lex-touris.lex
lex-autoload.todo lex-cn-place.lex lex-ecmixed.lex lex-fname.lex lex-lname.lex lex-org.lex lex-units.lex
lex-cemixed.lex lex-company.lex lex-en.lex lex-food.lex lex-main.lex lex-sname.lex
lex-chars.lex lex-dname-1.lex lex-en-pun.lex lex-lang.lex lex-nation.lex lex-stopword.lex