準(zhǔn)備安裝包
jdk-8u151-linux-x64.tar.gz:下載地址
solr-7.1.0:下載地址
ik-analyzer-solr7.x.zip:下載地址
由于 ik-analyzer的版本兼容問題奈惑,此處提供的可以兼容solr7.x譬挚,如果是其他版本的逻澳,請注意此問題捏膨。
安裝jdk1.8.0
新增配置/etc/profile如下:
#set java environment
export JAVA_HOME=/usr/local/jdk1.8.0
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
安裝solr7.1
下載solr7.1后解壓至需要放置的目錄迅耘,我放在/usr/local/solr-7.1.0下,如下圖:
solr5之后發(fā)布版本自帶jetty服務(wù)器税娜,可以自行啟動月洛。bin/solr start [-p port],默認(rèn)端口號8983践叠。 可以通過netstat -anp | grep 8983言缤,命令查看端口是否占用。solr引擎運(yùn)行后禁灼,可以通過url:http://localhost:8983/solr/#/ ,進(jìn)入solr管理列表界面管挟,如下圖:
配置中文分詞器IK Analyzer
將ik的jar文件 拷貝到 server/solr-webapp/webapp/WEB-INF/lib 目錄下
cp ik-analyzer-solr7x.jar /usr/local/solr-7.1.0/server/solr-webapp/webapp/WEB-INF/lib
將IKAnalyzer配置文件,停滯詞詞典拷貝到server/solr-webapp/webapp/WEB-INF/classes/
cp stopword.dic IKAnalyzer.cfg.xml /usr/local/solr-7.1.0/server/solr-webapp/webapp/WEB-INF/classes/
配置IKAnalyzer分詞器的擴(kuò)展詞典弄捕,停止詞詞典
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 擴(kuò)展配置</comment>
<!--用戶可以在這里配置自己的擴(kuò)展字典
<entry key="ext_dict">ext.dic;</entry>
-->
<!--用戶可以在這里配置自己的擴(kuò)展停止詞字典-->
<entry key="ext_stopwords">stopword.dic;</entry>
</properties>
配置Solr文件引入IKAnalyzer模塊
需要新建一個core模塊僻孝,進(jìn)行數(shù)據(jù)管理,新建命令如下:
bin/solr create -c ifiction
執(zhí)行成功后會在/usr/local/solr-7.1.0/server/solr生成ifiction文件守谓。
編輯/usr/local/solr-7.1.0/server/solr/ifiction/conf/managed-schema文件穿铆,添加下面代碼引入IKAnalyzer模塊:
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
配置需要分詞的字段:summary
<field name="fid" type="pint" indexed="true" stored="true" multiValued="false" />
<field name="type" type="pint" indexed="true" stored="true" multiValued="false" />
<field name="title" type="string" indexed="true" stored="true" multiValued="false" />
<field name="cover" type="string" indexed="true" stored="true" multiValued="false" />
<field name="writer" type="string" indexed="true" stored="true" multiValued="false" />
<field name="tags" type="string" indexed="true" stored="true" multiValued="false" />
<field name="summary" type="text_ik" indexed="true" stored="true" multiValued="false" />
<field name="updateline" type="pint" indexed="true" stored="true" multiValued="false" />
<field name="sort_base" type="pint" indexed="true" stored="true" multiValued="false" />
<!-- This can be enabled, in case the client does not know what fields may be searched. It isn't enabled by default
because it's very expensive to index everything twice. -->
<copyField source="title" dest="_text_"/>
<copyField source="writer" dest="_text_"/>
<copyField source="tags" dest="_text_"/>
<copyField source="summary" dest="_text_"/>
配置完成需要重啟solr引擎,sudo /usr/local/solr-7.1.0/bin/solr restart -force斋荞。
說明:
(1)type="text_ik"荞雏,是引入IKAnalyzer模塊時的name配置的,下面測試solr的中文分詞如下圖:
(2)copyField 這個是復(fù)制字段平酿,將配置的source都收集到 text 域上凤优,可以用作全文檢索,就如上述英文注釋描述蜈彼。
至此筑辨,solr引擎及中文分詞的模塊搭建也就全部完成。