solr 4.x 中文分词: jcseg-core-1.9.7, jcseg-analyzer-1.9.7

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

4, 在solr admin页面,测试中文分词

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/eyeofeagle/article/details/110438379