一、更新solr的配置文件schema.xml
添加:
<fieldType name="text_ansj" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.ansj.solr.AnsjTokenizerFactory" conf="ansj.conf"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.ansj.solr.AnsjTokenizerFactory" analysisType="1"/>
</analyzer>
</fieldType>
<fieldType name="text_ansj_nature" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.ansj.solr.AnsjTokenizerNatureFactory" conf="ansj.conf"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.ansj.solr.AnsjTokenizerNatureFactory" analysisType="1"/>
</analyzer>
</fieldType>
修改使用分词的字段类型:
<field name="name" type="text_mm" indexed="true" stored="true"/>
二、替换到/sample/solr/collection1下,上传到/opt/cloudera/parcels/solr/collection1
三、上传mmseg4j*.jar到3台服务器
/usr/lib/solr/webapps/solr/WEB-INF/lib/
#实际运行tomcat下的
#/var/lib/solr/tomcat-deployment/webapps/solr/WEB-INF/lib
才能生效
四sudo -u solr solrctl instancedir --create collection1 /opt/cloudera/parcels/solr/collection1
执行该命令后,会将/opt/cloudera/parcels/solr/collection1下的conf目录下面的所有文件上传到zookeeper的/solr/configs下面的collection1目录下面.
重启solr
sudo -u solr solrctl collection --create collection1 -s 3
创建一个名叫collection1的collection,有3个shard,我们没写-c参数,就会使用默认与collection name相同的配置文件目录作为-c的默认配置,也即会使用默认的上一步上传到zookeeper的collection1目录作为默认配置目录.
OK,我们可以检测一下collection是否创建成功,运行:solrctl collection --list,看看有没有collection1
如果创建失败,可删除分片
sudo -u solr solrctl instancedir --delete collection1
sudo -u solr solrctl collection --delete collection1
如果schema.xml修改,需要更新zookeeper下solr配置
sudo -u solr solrctl instancedir --update collection1 /opt/cloudera/parcels/solr/collection1
sudo -u solr solrctl collection --reload collection1
sudo -u solr solrctl instancedir --update collection2 /opt/cloudera/parcels/solr/collection1
sudo -u solr solrctl collection --reload collection2
将修改后的配置更新到zookeeper中
四、添加扩展词库schema.xml(暂时不配置)
<fieldtype name="text_mm" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="/home/dic"/>
</analyzer>
</fieldtype>
词库文件名必须以words开头.dic结尾。词库强制使用utf-8.由于 utf-8 文件有带与不带 BOM 之分,建议词库第一行为空行或为无 BOM 格式的 utf-8 文件。
每个服务器在/home/dic下上传words-sougou.dic
重启solr服务
测试:大智慧 event 升级前可分词为 “大” “智慧” 升级后“大智慧”
常州地方词库升级后测试“八一村委”
find / -name "WEB-INF*"
1)在主机进入zookeeper文件夹,用
cd /usr/lib/zookeeper/bin/
./zkCli.sh (sh zkCli.sh -server localhost:2181)
获得zookeeper客户端实例,使用rmr命令删除原有配置文件myconf。
/usr/lib/solr/bin/solrctl.sh
find / -name schema.xml
####存在疑问,此记录不作为配置步骤####
CDH中solr每次启动均会从此目录重新复制war包到/var/lib/solr/tomcat-deployment
/usr/lib/solr/solr-4.10.3-cdh5.4.3.war
因此分词器等需要更新到war包后,才能生效
上传IKAnalyzer2012_u6.jar到
/var/lib/solr/tomcat-deployment/webapps/solr/WEB-INF/lib
上传IKAnalyzer.cfg.xml,stopword.dic到
/var/lib/solr/tomcat-deployment/webapps/solr/WEB-INF/classes
在源码根路径下执行: mvn clean install -DskipTests=true 命令,在target目录下生成jar包。
添加:
<fieldType name="text_ansj" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.ansj.solr.AnsjTokenizerFactory" conf="ansj.conf"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.ansj.solr.AnsjTokenizerFactory" analysisType="1"/>
</analyzer>
</fieldType>
<fieldType name="text_ansj_nature" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.ansj.solr.AnsjTokenizerNatureFactory" conf="ansj.conf"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.ansj.solr.AnsjTokenizerNatureFactory" analysisType="1"/>
</analyzer>
</fieldType>
修改使用分词的字段类型:
<field name="name" type="text_mm" indexed="true" stored="true"/>
二、替换到/sample/solr/collection1下,上传到/opt/cloudera/parcels/solr/collection1
三、上传mmseg4j*.jar到3台服务器
/usr/lib/solr/webapps/solr/WEB-INF/lib/
#实际运行tomcat下的
#/var/lib/solr/tomcat-deployment/webapps/solr/WEB-INF/lib
才能生效
四sudo -u solr solrctl instancedir --create collection1 /opt/cloudera/parcels/solr/collection1
执行该命令后,会将/opt/cloudera/parcels/solr/collection1下的conf目录下面的所有文件上传到zookeeper的/solr/configs下面的collection1目录下面.
重启solr
sudo -u solr solrctl collection --create collection1 -s 3
创建一个名叫collection1的collection,有3个shard,我们没写-c参数,就会使用默认与collection name相同的配置文件目录作为-c的默认配置,也即会使用默认的上一步上传到zookeeper的collection1目录作为默认配置目录.
OK,我们可以检测一下collection是否创建成功,运行:solrctl collection --list,看看有没有collection1
如果创建失败,可删除分片
sudo -u solr solrctl instancedir --delete collection1
sudo -u solr solrctl collection --delete collection1
如果schema.xml修改,需要更新zookeeper下solr配置
sudo -u solr solrctl instancedir --update collection1 /opt/cloudera/parcels/solr/collection1
sudo -u solr solrctl collection --reload collection1
sudo -u solr solrctl instancedir --update collection2 /opt/cloudera/parcels/solr/collection1
sudo -u solr solrctl collection --reload collection2
将修改后的配置更新到zookeeper中
四、添加扩展词库schema.xml(暂时不配置)
<fieldtype name="text_mm" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="/home/dic"/>
</analyzer>
</fieldtype>
词库文件名必须以words开头.dic结尾。词库强制使用utf-8.由于 utf-8 文件有带与不带 BOM 之分,建议词库第一行为空行或为无 BOM 格式的 utf-8 文件。
每个服务器在/home/dic下上传words-sougou.dic
重启solr服务
测试:大智慧 event 升级前可分词为 “大” “智慧” 升级后“大智慧”
常州地方词库升级后测试“八一村委”
find / -name "WEB-INF*"
1)在主机进入zookeeper文件夹,用
cd /usr/lib/zookeeper/bin/
./zkCli.sh (sh zkCli.sh -server localhost:2181)
获得zookeeper客户端实例,使用rmr命令删除原有配置文件myconf。
/usr/lib/solr/bin/solrctl.sh
find / -name schema.xml
####存在疑问,此记录不作为配置步骤####
CDH中solr每次启动均会从此目录重新复制war包到/var/lib/solr/tomcat-deployment
/usr/lib/solr/solr-4.10.3-cdh5.4.3.war
因此分词器等需要更新到war包后,才能生效
上传IKAnalyzer2012_u6.jar到
/var/lib/solr/tomcat-deployment/webapps/solr/WEB-INF/lib
上传IKAnalyzer.cfg.xml,stopword.dic到
/var/lib/solr/tomcat-deployment/webapps/solr/WEB-INF/classes
在源码根路径下执行: mvn clean install -DskipTests=true 命令,在target目录下生成jar包。